خطای کدگذاری encoding/encerr
خطای مشترک خواندن قالبها: نوع خطا، پیام و جای آن در متن.
واردسازی کدگذاری.خطای کدگذاری
روالهای خواندن جیسون، یامل، پرونده محیط و مسجپک خطایشان را در یک خطای کدگذاری گزارش میکنند. آن را با بدون خطا بسازید، به روال بدهید و بعد خطا است را بررسی کنید.
گونهها
خطای کدگذاری EncodingError
ساختار خطای کدگذاری| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| kind | kind | صحیح | نوع خطا؛ یکی از ثابتهای نوع. |
| message | message | رشته = "" | پیام خطا، به انگلیسی. |
| position | position | صحیح = -1 | جای خطا در متن بر حسب بایت؛ -1 اگر معلوم نباشد. |
واردسازی کدگذاری.خطای کدگذاری
واردسازی کدگذاری.جیسون
روال ریشه:
ناپایا خ := خطای کدگذاری.بدون خطا()
سرچاپ خطای کدگذاری.خطا است(خ)، خ.kind == خطای کدگذاری.نوع بدون خطا
_ := جیسون.کدگشایی(`{"a": }`، خ)
سرچاپ خطای کدگذاری.خطا است(خ)، خ.kind، خ.position، خ.message
ت := خطای کدگذاری.خطای جدید(خطای کدگذاری.نوع سفارشی، "مقدار منفی مجاز نیست"، ۱۲)
سرچاپ ت.kind، ت.message، ت.position
سرچاپ خطای کدگذاری.خطای اتمام ناگهانی(۴۰).kind == خطای کدگذاری.نوع اتمام ناگهانی
سرچاپ خطای کدگذاری.خطای نشانه نابجا("انتظار ':'"، ۳).kind == خطای کدگذاری.نوع نشانه نابجا
سرچاپ خطای کدگذاری.خطای ناهمخوانی("عدد"، ۵).message
سرچاپ خطای کدگذاری.نوع یوتیاف۸ نامعتبر، خطای کدگذاری.نوع عدد نامعتبر، خطای کدگذاری.نوع عمق بیش از حد، خطای کدگذاری.نوع ناهمخوانی، خطای کدگذاری.نوع کلید یافت نشد، خطای کدگذاری.نوع داده اضافی
پایانپایاها و متغیرها
نوع بدون خطا KindNone
پایا نوع بدون خطا: صحیح۳۲ = 0نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع اتمام ناگهانی KindUnexpectedEOF
پایا نوع اتمام ناگهانی: صحیح۳۲ = 1نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع نشانه نابجا KindUnexpectedToken
پایا نوع نشانه نابجا: صحیح۳۲ = 2نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع یوتیاف۸ نامعتبر KindInvalidUTF8
پایا نوع یوتیاف۸ نامعتبر: صحیح۳۲ = 3نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع عدد نامعتبر KindInvalidNumber
پایا نوع عدد نامعتبر: صحیح۳۲ = 4نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع عمق بیش از حد KindDepthExceeded
پایا نوع عمق بیش از حد: صحیح۳۲ = 5نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع ناهمخوانی KindTypeMismatch
پایا نوع ناهمخوانی: صحیح۳۲ = 6نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع کلید یافت نشد KindKeyNotFound
پایا نوع کلید یافت نشد: صحیح۳۲ = 7نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع داده اضافی KindTrailingData
پایا نوع داده اضافی: صحیح۳۲ = 8نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
نوع سفارشی KindCustom
پایا نوع سفارشی: صحیح۳۲ = 99نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
روالها
بدون خطا NoError
روال بدون خطا(): خطای کدگذارینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
خطای جدید NewError
روال خطای جدید(kind: صحیح، message: رشته، position: صحیح): خطای کدگذارینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
خطای اتمام ناگهانی ErrUnexpectedEOF
روال خطای اتمام ناگهانی(position: صحیح): خطای کدگذارینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
خطای نشانه نابجا ErrUnexpectedToken
روال خطای نشانه نابجا(message: رشته، position: صحیح): خطای کدگذارینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
خطای ناهمخوانی ErrTypeMismatch
روال خطای ناهمخوانی(expected: رشته، position: صحیح): خطای کدگذارینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam
خطا است IsError
روال خطا است(e: خطای کدگذاری): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam