خطاهای جاوا

از ویکی کد
(تغییرمسیر از خطاهای جاوا)
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Java-menu.jpeg
خانه
متدها در جاوا
کلاس‌ها در جاوا
۱برنامه‌نویسی شیءگرایی
۲کلاس‌ها و اشیاء
۳خاصیت‌های کلاس
۴متدهای کلاس
۵سازنده‌ها
۶Modifier ها
۷کپسوله‌سازی
۸پکیج‌ها
۹ارث بری
۱۰چند ریختی
۱۱کلاس‌های داخلی
۱۲مفهوم انتزاعی
۱۳رابط‌ها
۱۴Enum ها
۱۵دریافت اطلاعات از کاربر
۱۶تاریخ و زمان
۱۷ArrayList
۱۸HashMap
۱۹کلاس‌های Wrapper
۲۰خطاهای جاوا
فایل‌ها در جاوا
مرجع جاوا
مثال‌های جاوا

هنگام اجرا شدن کد جاوا، خطاهای متفاوتی می‌تواند رخ دهد: خطاهای کدی که توسط برنامه‌نویس ایجاد شده‌اند، ارورهایی که به موجب مقدار ورودی اشتباه ایجاد شده‌اند یا سایر موارد غیرقابل پیش بینی. [۱]

زمانی که یک ارور (به انگلیسی: error) رخ می‌دهد، جاوا به صورت عادی اجرا را متوقف می‌کند و یک پیغام خطا می‌سازد. اصطلاح فنی این کار این است که جاوا یک خطا (به انگلیسی: throwپرتاب (به انگلیسی: exception) می‌کند.

Try و catch در جاوا

عبارت try به شما این اجازه را می‌دهد که بلاکی از کد را که می‌بایست برای وجود یا عدم خطا بررسی شود، مشخص کنید.

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

کلمات کلیدی try و catch با یکدیگر نوشته می‌شوند:

شیوه نوشتار

1 try {
2   //  Block of code to try
3 }
4 catch(Exception e) {
5   //  Block of code to handle errors
6 }

مثال زیر را در نظر بگیرید:

کد زیر موجب بروز خطا می‌شود، زیرا myNumbers[10] وجود ندارد. {{کب| public class MyClass {

 public static void main(String[ ] args) {
   int[] myNumbers = {1, 2, 3};
   System.out.println(myNumbers[10]); // error!
 }

} </syntaxhighlight>

خروجی چیزی به صورت زیر خواهد بود:

Terminal.png Java try and catch

مشاهدهٔ نتیجه


اگر خطایی رخ دهد، ما می‌توانیم از try...catch برای دریافت ارور استفاده کنیم و سپس کدهایی را برای مدیریت خطا اجرا کنیم:

مثال

 1 public class MyClass {
 2   public static void main(String[ ] args) {
 3     try {
 4       int[] myNumbers = {1, 2, 3};
 5       System.out.println(myNumbers[10]);
 6     } catch (Exception e) {
 7       System.out.println("Something went wrong.");
 8     }
 9   }
10 }

خروجی به صورت زیر خواهد بود:

Terminal.png Java try and catch

مشاهدهٔ نتیجه


Finally

عبارت finally، به شما اجازه می‌دهد کدهایی را بعد از try...catch بدون در نظرگرفتن نتیجه، اجرا کنید:

مثال

 1 public class MyClass {
 2   public static void main(String[] args) {
 3     try {
 4       int[] myNumbers = {1, 2, 3};
 5       System.out.println(myNumbers[10]);
 6     } catch (Exception e) {
 7       System.out.println("Something went wrong.");
 8     } finally {
 9       System.out.println("The 'try catch' is finished.");
10     }
11   }
12 }

خروجی به صورت زیر خواهد بود:

Terminal.png Finally

مشاهدهٔ نتیجه


کلمه کلیدی throw

کلمه throwبه شما اجازه ایجاد یک خطای شخصی‌سازی شده را می‌دهد.

کلمه کلیدی throw به همراه یک نوع خطا استفاده می‌شود. نوع خطاهای بسیاری در جاوا وجود دارند:

ArithmeticException ,FileNotFoundException ,ArrayIndexOutOfBoundsException ,SecurityException و غیره:

مثال

دسترسی که مقدارمتغیر age کوچکتر از ۱۸ باشد، یک خطا ایجاد می‌شود (عبارت "Access denied") (به فارسی: غیرقابل دسترسی) را چاپ می‌کند. در صورتی مقدار age برابر با ۱۸ یا بزرگتر باشد، عبارت "Access granted" (به فارسی: دسترسی داده شد) را چاپ می‌کند.

 1 public class MyClass {
 2   static void checkAge(int age) {
 3     if (age < 18) {
 4       throw new ArithmeticException("Access denied - You must be at least 18 years old.");
 5     }
 6     else {
 7       System.out.println("Access granted - You are old enough!");
 8     }
 9   }
10 
11   public static void main(String[] args) {
12     checkAge(15); // Set age to 15 (which is below 18...)
13   }
14 }

نتیجه برابر خواهد بود با:

Terminal.png The throw keyword

مشاهدهٔ نتیجه


اگر مقدار متغیر age برابر با ۲۰ بود، شما پیغام خطایی دریافت نمی‌کردید:

مثال

checkAge(20);

نتیجه برابر خواهد بود با:

Terminal.png The throw keyword

مشاهدهٔ نتیجه


تمرینات جاوا

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.


منابع آموزشی