کتابخانه‌ی استاندارد · سیستم و ابزار

خطا os/error

آخرین خطای عملیات پرونده و فرآیند: کد، پیام و مسیری که مشکل داشته.

واردسازی سیستم عامل.خطا

وقتی یک عملیات در بسته‌های پرونده، پوشه، فرآیند یا موقت شکست می‌خورد، جزئیاتش اینجا ثبت می‌شود. پس از هر عملیاتی که می‌تواند شکست بخورد، با خطا دارد بپرسید و با آخرین خطا بفهمید چه شده.

روال‌های ساده‌ی بسته‌ی سیستم عامل خطا را اینجا ثبت نمی‌کنند؛ آن‌ها فقط کد برمی‌گردانند. این بسته با خطای عمومی (error) فرق دارد.

گونه‌ها

خطای سیستم عامل OSError

ساختار خطای سیستم عامل
جزئیات یک خطا.
نامانگلیسیگونهتوضیح
codecodeصحیح = 0کد خطا؛ یکی از ثابت‌های بالا.
messagemessageرشته = ""پیام خطا به انگلیسی.
operationoperationرشته = ""نام روالی که خطا داده.
pathpathرشته = ""مسیری که مشکل داشته.
system_codesystem_codeصحیح = 0کد خطای خود سیستم عامل (errno)، اگر در دسترس باشد.
os-error-Last.salam
واردسازی سیستم عامل.خطا
واردسازی سیستم پرونده.پرونده

روال ریشه:
    خطا.پاک کردن خطا()
    سرچاپ خطا.خطا دارد()
    پرونده.حذف("پرونده‌ای که وجود ندارد.txt")
    اگر خطا.خطا دارد():
        خ := خطا.آخرین خطا()
        سرچاپ خ.code == خطا.پرونده یافت نشد، خ.operation، خ.message
        سرچاپ خطا.کد آخرین خطا()، خطا.پیام آخرین خطا()
    پایان
    خطا.تنظیم خطا(خطا.پایان زمان، "زمان تمام شد"، "انتظار"، ""، ۰)
    سرچاپ خطا.کد آخرین خطا() == خطا.پایان زمان، خطا.پیام آخرین خطا()
    سرچاپ خطا.بدون خطا، خطا.دسترسی رد شد، خطا.از قبل موجود است، خطا.مسیر نامعتبر، خطا.پشتیبانی نمی شود، خطا.خطای ورودی خروجی، خطا.فرآیند ناموفق
پایان
خروجیfalse true Delete delete failed 1 delete failed true زمان تمام شد 0 2 3 4 5 6 8

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

بدون خطا None

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

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

پرونده یافت نشد FileNotFound

پایا پرونده یافت نشد: صحیح۳۲ = 1
پرونده یا پوشه پیدا نشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

دسترسی رد شد PermissionDenied

پایا دسترسی رد شد: صحیح۳۲ = 2
اجازه‌ی دسترسی نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

از قبل موجود است AlreadyExists

پایا از قبل موجود است: صحیح۳۲ = 3
از قبل وجود دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

مسیر نامعتبر InvalidPath

پایا مسیر نامعتبر: صحیح۳۲ = 4
مسیر نادرست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

پشتیبانی نمی شود NotSupported

پایا پشتیبانی نمی شود: صحیح۳۲ = 5
این کار روی این سیستم پشتیبانی نمی‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

خطای ورودی خروجی IOError

پایا خطای ورودی خروجی: صحیح۳۲ = 6
خطای خواندن یا نوشتن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

پایان زمان Timeout

پایا پایان زمان: صحیح۳۲ = 7
زمان به پایان رسید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

فرآیند ناموفق ProcessFailed

پایا فرآیند ناموفق: صحیح۳۲ = 8
اجرای فرآیند شکست خورد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

روال‌ها

تنظیم خطا Set

روال تنظیم خطا(code: صحیح، message: رشته، operation: رشته، path: رشته، system_code: صحیح)
یک خطا ثبت می‌کند؛ برای وقتی که خودتان بسته‌ای می‌نویسید و می‌خواهید با همین سازوکار گزارش خطا بدهید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

پاک کردن خطا Clear

روال پاک کردن خطا()
خطای ثبت‌شده را پاک می‌کند؛ پیش از عملیاتی که می‌خواهید خطایش را جدا بررسی کنید.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

آخرین خطا Last

روال آخرین خطا(): خطای سیستم عامل
آخرین خطا با همه‌ی جزئیات.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

کد آخرین خطا LastCode

روال کد آخرین خطا(): صحیح
کد آخرین خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

پیام آخرین خطا LastMessage

روال پیام آخرین خطا(): رشته
پیام آخرین خطا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam

خطا دارد HasError

روال خطا دارد(): منطقی
اگر خطایی ثبت شده باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: os-error-Last.salam