
آموزش exception ها در جاوا
توضیح exception در جاوا
اکسپشن چیست؟
دلایل رخداد exception ها:
- کاربر یک داده نامعتبر وارد کرده است.
- یک فایل که نیاز به باز شدن دارد پیدا نشود.
- اتصال شبکه در وسط ارتباط گم شده است یا JVM از حافظه خارج شده است.
انواع خطاها:
با دانستن دلایل رخداد یک اکسپشن میتوان به طور کلی خطاها را به دو دسته تقسیم کرد: خطاهای زمان کامپایل و خطاهای زمان اجرا که در ادامه به توضیح آنها خواهیم پراخت.
خطای زمان کامپایل :(Compile-Time Error)
احتمالا در روند یادگیری جاوا با این خطا بارها مواجه شدید. این خطا در اثر درست ننوشتن کدهای برنامه رخ میدهد. مثلا اگر در پایان دستورها علامت ; را قرار ندهید این یک خطای زمان کامپایل محسوب میشود. چون این نوع خطاها هنگام کامپایل برنامه و قبل از اجرای آن تشخیص داده می شوند به آنها خطای زمان کامپایل گفته میشود. تمام ideهای جاوا که امروزه وجود دارند خطای زمان کامپایل را در همان لحظه رخداد به برنامه نویس اطلاع میدهند. به عنوان مثال در ایکلیپس(Eclips) خطاهای زمان کامپایل با خط قرمزی که زیر کد کشیده میشود، مشخص میشوند.
نکته: به خطاهای زمان کامپایل خطای سینتکس یا خطای نحوی (Syntax Error) نیز گفته میشود.
خطای زمان اجرا :(Runtime Error)
تشخیص خطاهای زمان اجرا دشوارتر از تشخیص خطاهای نحوی است. این نوع خطاها تا قبل از اجرای برنامه و رسیدن به کدی که باعث بروز خطا میشود قابل تشخیص نیستند و به همین دلیل به آن خطای زمان اجرا گفته میشود. یعنی این نوع خطاها در طول اجرای برنامه رخ میدهند.
int[] nums = {1, 2, 3};
System.out.println(nums[3]);
بیشتر بخوانید: جاوا اف ایکس چیست و چه کاربردی دارد؟ در این مقاله با پلتفرم FX آشنا می شوید
چگونگی رفع اکسپشن در برنامه:
Try
{
//Protected code
}catch(ExceptionName e1)
{
//Catch block
}
به کدی که داخل بلوک try قرار می گیرد، کد محافظت شده گویند. دقت داشته باشید که بلوک های catchباید بلافاصله بعد از بلوک try قرار بگیرند. بعد از هر بلوک try هم باید بلوک های catch و یا بلوک finally بیاید. بلوک های catch برای درگیر شدن با exception ها به کار می روند. اصولا هر بلوک catch برای مدیریت یک Exception به کار می رود. وقتی که در داخل کدهای بلوک try خطایی رخ دهد بلوک catch مربوط به آن، اجرا خواهد شد.
// File Name : ExcepTest.java
import java.io.*;
public class ExcepTest {
public static void main(String args[]) {
try {
int a[] = new int[2];
System.out.println("Access element three :" + a[3]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Exception thrown :" + e);
}
System.out.println("Out of the block");
}
}
Exception thrown :java.lang.ArrayIndexOutOfBoundsException: 3
Out of the block
try
{
//Protected code
}catch(ExceptionType1 e1)
{
//Catch block
}catch(ExceptionType2 e2)
{
//Catch block
}catch(ExceptionType3 e3)
{
//Catch block
}
catch (IOException|FileNotFoundException ex) {
logger.log(ex);
throw ex;
}
توضیح کلمه های throws و throw:
بلاک :finally
try {
// Protected code
} catch (ExceptionType1 e1) {
// Catch block
} catch (ExceptionType2 e2) {
// Catch block
} catch (ExceptionType3 e3) {
// Catch block
}finally {
// The finally block always executes.
}
نکات زیر را به خاطر بسپارید:
- یک عبارت catch نمی تواند بدون دستورات وجود داشته باشد.
- هرگاه یک بلوک try/catch وجود داشته باشد، finally در آن اجباری نیست.
ساختن exception در جاوا:
-
همه ی Exception ها باید فرزند Throwable باشند و از آن ارث برده باشند.
-
اگر می خواهید exception کامپایل بسازید که کاربر را مجبور به مدیریت exception کند باید کلاسی که می سازید فرزند کلاس Exception باشد.
-
اگر می خواهید که exception شما exception زمان اجرا باشد، باید کلاس شما فرزند RuntimeException باشد.
class MyException extends Exception{
}
کلام آخر:
مقالات مرتبط
pug (پاگ) چیست و از آن چه میدانید؟
pug (پاگ) چیستحتما اسم پاگ را شنیده اید اما در دنیای برنامه نویسی چه میکند؟ با ما همراه شوید تا هر آنچه که درباره pug چیست را میخواهید، برایتان ارائه دهیم. پیشنهاد میکنم این مطلب را از دست ندهید.
چگونه یک طراح وب موفق شوم؟
روش هایی که شما را طراح وب حرفه ای می کند!در این مطلب یاد خواهید گرفت که راه و رسم طراح وب حرفه ای چگونه می باشد.
سیستم مدیریت پایگاه داده یا DBMS چیست
انواع سیستم های مدیریت پایگاه دادهبا خواندن مطلب سیستم مدیریت پایگاه داده، می توانید با وظایف و نحوه عملکرد آنها آشنا شوید و بدانید که استفاده کردن از DBMS ها چه مزایا و معایبی دارد.
saas چیست؟ سرویس مبتنی بر فضای ابری
Software as a Service چه کاربردی دارد؟شما با سرویس مبتنی بر فضای ابری آشنا هستید؟ مطلب امروز ما در مورد یکی از این سرویس ها به نام saas می باشد، ما بررسی کرده ایم که saas چیست و چطور می توانید از آن استفاده کنید.
14 مورد از پرفروش ترین کتاب های پایتون که باید بخوانید
14 کتاب برتر آموزش پایتون از مبتدی تا حرفه ای14 کتاب برتر آموزش زبان برنامه نویسی پایتون از مبتدی تا حرفه ای







