کتابخانه‌ی استاندارد · کدگذاری و داده

خطای کدگذاری encoding/encerr

خطای مشترک خواندن قالب‌ها: نوع خطا، پیام و جای آن در متن.

واردسازی کدگذاری.خطای کدگذاری

روال‌های خواندن جیسون، یامل، پرونده محیط و مسج‌پک خطایشان را در یک خطای کدگذاری گزارش می‌کنند. آن را با بدون خطا بسازید، به روال بدهید و بعد خطا است را بررسی کنید.

گونه‌ها

خطای کدگذاری EncodingError

ساختار خطای کدگذاری
خطای خواندن یا نوشتن یک قالب.
نامانگلیسیگونهتوضیح
kindkindصحیحنوع خطا؛ یکی از ثابت‌های نوع.
messagemessageرشته = ""پیام خطا، به انگلیسی.
positionpositionصحیح = -1جای خطا در متن بر حسب بایت؛ ‎-1 اگر معلوم نباشد.
encoding-encerr-Error.salam
واردسازی کدگذاری.خطای کدگذاری
واردسازی کدگذاری.جیسون

روال ریشه:
    ناپایا خ := خطای کدگذاری.بدون خطا()
    سرچاپ خطای کدگذاری.خطا است(خ)، خ.kind == خطای کدگذاری.نوع بدون خطا
    _ := جیسون.کدگشایی(`{"a": }`، خ)
    سرچاپ خطای کدگذاری.خطا است(خ)، خ.kind، خ.position، خ.message
    ت := خطای کدگذاری.خطای جدید(خطای کدگذاری.نوع سفارشی، "مقدار منفی مجاز نیست"، ۱۲)
    سرچاپ ت.kind، ت.message، ت.position
    سرچاپ خطای کدگذاری.خطای اتمام ناگهانی(۴۰).kind == خطای کدگذاری.نوع اتمام ناگهانی
    سرچاپ خطای کدگذاری.خطای نشانه نابجا("انتظار ':'"، ۳).kind == خطای کدگذاری.نوع نشانه نابجا
    سرچاپ خطای کدگذاری.خطای ناهمخوانی("عدد"، ۵).message
    سرچاپ خطای کدگذاری.نوع یوتی‌اف۸ نامعتبر، خطای کدگذاری.نوع عدد نامعتبر، خطای کدگذاری.نوع عمق بیش از حد، خطای کدگذاری.نوع ناهمخوانی، خطای کدگذاری.نوع کلید یافت نشد، خطای کدگذاری.نوع داده اضافی
پایان
خروجیfalse true true 2 6 invalid value 99 مقدار منفی مجاز نیست 12 true true expected عدد 3 4 5 6 7 8

پایاها و متغیرها

نوع بدون خطا KindNone

پایا نوع بدون خطا: صحیح۳۲ = 0
بدون خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam

نوع اتمام ناگهانی KindUnexpectedEOF

پایا نوع اتمام ناگهانی: صحیح۳۲ = 1
متن زودتر از انتظار تمام شد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam

نوع نشانه نابجا KindUnexpectedToken

پایا نوع نشانه نابجا: صحیح۳۲ = 2
نویسه یا نشانه‌ای نابجا آمد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-encerr-Error.salam

نوع یوتی‌اف۸ نامعتبر KindInvalidUTF8

پایا نوع یوتی‌اف۸ نامعتبر: صحیح۳۲ = 3
متن UTF-8 درستی نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: 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