tgoop.com/javapro_ir/4529
Create:
Last Update:
Last Update:
⚖️ تفاوت Checked و Unchecked Exceptions در جاوا
برنامهنویسی در جاوا بدون Exception Handling معنایی ندارد. جاوا برای مدیریت خطاها دو نوع Exception تعریف کرده است: Checked و Unchecked. این تمایز به ظاهر ساده است، اما تاثیر بزرگی بر طراحی APIها و ساختار کد دارد.
📌 Checked Exceptions
درواقع Checked Exception ها خطاهایی هستند که کامپایلر شما را مجبور میکند مدیریتشان کنید.
یا باید آنها را با try-catch بگیرید، یا باید با throws در امضای متد اعلام کنید.
این Exceptions معمولاً برای خطاهای قابل پیشبینی و بازیابیپذیر استفاده میشوند.
🔎 مثال:
import java.io.*;
public class CheckedExample {
public static void main(String[] args) {
try {
FileReader reader = new FileReader("file.txt"); // FileNotFoundException
reader.read(); // IOException
} catch (IOException e) {
System.out.println("خطا: " + e.getMessage());
}
}
}
📌 در این مثال، جاوا ما را مجبور میکند که IOException را مدیریت کنیم.
📌 Unchecked Exceptions
در واقع Unchecked Exception ها زیرکلاسهای RuntimeException هستند.
کامپایلر ما را مجبور به مدیریت آنها نمیکند.
این Exceptions معمولاً برای خطاهای برنامهنویسی مثل NullPointerException، ArrayIndexOutOfBoundsException یا IllegalArgumentException استفاده میشوند.
🔎 مثال:
public class UncheckedExample {
public static void main(String[] args) {
String text = null;
System.out.println(text.length()); // NullPointerException
}
}
📌 در اینجا هیچ اجباری از طرف کامپایلر برای مدیریت خطا وجود ندارد.
🎯 چرا این تمایز وجود دارد؟
در واقع Checked Exceptions به ما یادآوری میکنند که خطاهایی وجود دارند که باید آنها را جدی بگیریم (مثل IO یا دسترسی به شبکه).
و Unchecked Exceptions برای خطاهایی هستند که ناشی از اشتباه برنامهنویساند و معمولاً نباید recover شوند (مثل استفاده از null).
⚡ تاثیر روی طراحی APIها
اگر API شما با منابع خارجی (فایل، شبکه، دیتابیس) سروکار دارد → بهتر است Checked Exception برگرداند.
اگر API شما ورودی نامعتبر یا خطای منطقی دارد → معمولاً Unchecked Exception بهتر است.
🔎 مثال طراحی API:
// Checked Exception: نشان میدهد که خطا قابل انتظار است
public void readFile(String path) throws IOException {
// ...
}
// Unchecked Exception: نشان میدهد که خطا ناشی از ورودی اشتباه است
public void setAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("سن نمیتواند منفی باشد");
}
}
✅ جمعبندی
Checked Exceptions →
قابل پیشبینی، باید مدیریت شوند.
Unchecked Exceptions →
خطاهای برنامهنویسی، اجباری برای مدیریت ندارند.
این تمایز باعث میشود APIها شفافتر باشند و توسعهدهنده بداند کجا باید به خطا اهمیت دهد.
#کاربرـحرفهـای
🆔 @javapro_ir
🆔 @group_javapro
BY برنامه نویسی جاوا | Java
Share with your friend now:
tgoop.com/javapro_ir/4529