مسیرها
/
Java
Java
/
تمرین‌ها
/
مدیریت خطا
مدیریت خطا

مدیریت خطا

متوسط

دستورالعمل‌ها

انواع مختلفی از مدیریت خطا و منابع را پیاده‌سازی کنید.

یکی از نکات مهم در برنامه‌نویسی این است که چگونه خطاها را مدیریت کنیم و منابع را حتی وقتی خطا رخ می‌دهد ببندیم.

این تمرین از شما می‌خواهد که خطاهای مختلفی را مدیریت کنید. از آنجا که مدیریت خطا تا حد زیادی به زبان برنامه‌نویسی بستگی دارد، باید به تست‌های مربوط به track خود مراجعه کنید تا ببینید دقیقاً چه چیزی لازم است.

این تمرین از شما می‌خواهد که استثناها را مدیریت کنید. استثنا رویدادی است که در حین اجرای یک برنامه رخ می‌دهد و جریان عادی دستورهای برنامه را مختل می‌کند.

در Java دو نوع استثنا وجود دارد: استثناهای بررسی‌شده و استثناهای بررسی‌نشده.

استثناهای بررسی‌شده

استثناهای بررسی‌شده استثناهایی هستند که در زمان کامپایل بررسی می‌شوند.

پیامدهای عملی

باید آن‌ها را در امضای متد هر متدی که ممکن است یک استثنای بررسی‌شده را پرتاب کند اعلام کنید و هنگام فراخوانی هر متدی که ممکن است استثنای بررسی‌شده را پرتاب کند، آن‌ها را مدیریت کنید یا دوباره پرتاب کنید.

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

نمونه‌هایی از کاربرد آن‌ها

آن‌ها اغلب زمانی استفاده می‌شوند که یک متد نمی‌تواند هیچ نتیجه‌ی معتبری برگرداند؛ برای مثال یک متد جست‌وجو که نتوانسته موردِ جست‌وجویش را پیدا کند.

این روش جایگزینی برای برگرداندن null یا یک کد خطا است. یک استثنای بررسی‌شده از آن جایگزین‌ها بهتر است، چون استفاده‌کننده‌ی متد را وادار می‌کند که حالت خطا را در نظر بگیرد.

استثناهای بررسی‌نشده

استثناهای بررسی‌نشده استثناهایی هستند که در زمان کامپایل بررسی نمی‌شوند.

پیامدهای عملی

لازم نیست آن‌ها را در امضای متد متدهایی که ممکن است یک استثنای بررسی‌نشده را پرتاب کنند اعلام کنید و هنگام فراخوانی هر متدی که ممکن است استثنای بررسی‌نشده را پرتاب کند، آن‌ها را مدیریت کنید یا دوباره پرتاب کنید.

نمونه‌هایی از کاربرد آن‌ها

استثناهای بررسی‌نشده معمولاً در اثر نقص‌های برنامه ایجاد می‌شوند و با کدنویسی درست می‌توان از آن‌ها جلوگیری کرد. مثال: می‌توان با اطمینان از اینکه اندیس‌های آرایه بین ۰ و طول آرایه باشند، از ArrayIndexOutOfBoundsException جلوگیری کرد.

ویرایش از طریق GitHub این لینک در پنجره یا زبانه‌ی جدیدی باز می‌شود
Java Exercism

آماده‌اید مدیریت خطا را شروع کنید؟

در Exercism ثبت‌نام کنید تا Java را همراه با 26 مفهوم158 تمرین و مربی‌گری انسانی واقعی یاد بگیرید و در آن استاد شوید، همه‌ی این‌ها رایگان.