JAVAPRO_IR Telegram 4529
⚖️ تفاوت 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
👍51



tgoop.com/javapro_ir/4529
Create:
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

View MORE
Open in Telegram


Telegram News

Date: |

Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members. The group’s featured image is of a Pepe frog yelling, often referred to as the “REEEEEEE” meme. Pepe the Frog was created back in 2005 by Matt Furie and has since become an internet symbol for meme culture and “degen” culture. "Doxxing content is forbidden on Telegram and our moderators routinely remove such content from around the world," said a spokesman for the messaging app, Remi Vaughn. The main design elements of your Telegram channel include a name, bio (brief description), and avatar. Your bio should be:
from us


Telegram برنامه نویسی جاوا | Java
FROM American