0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

Error و Exception در جاوا چه تفاوتی با هم دارند؟

1 پاسخ

+2 امتیاز
قبل توسط (302 امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

هر دو کلاس java.lang.Error  و java.lang.Exception فرزند کلاس java.lang.Throwable هستند، اما تفاوت های قابل توجهی دارند.

java.lang.Error خطایی رو نشون میده که دلیلش برمیگرده به محیطی که برنامه داره توش اجرا میشه مثل OutOfMemoryError که وقتی رخ میده که JVM دیگه حافظه نداشته باشه، یا StackOverflowError زمانی که حافظه پشته پر بشه رخ میده.

در حالی که java.lang.Exception، زمانی رخ میده که خود برنامه جاوا دچار Exception شده باشه (علت خود برنامه است نه محیطی که برنامه داره توش اجرا میشه)! مثله NullPointerException که زمانی رخ میده که برنامه داره تلاش میکنه که به یک شی null دسترسی داشته باشه، یا ClassCastException وقتی رخ میده که برنامه داره تلاش میکنه دوتا کلاس غیر قابل تبدیل به هم رو به هم تبدیل کنه.

تفاوت ها:

1. error ها رو نمیشه ریکاور کرد و فقط باید اجرای برنامه رو متوقف کرد، اما exception هارو میتونیم پرتاب کنیم به صدا کننده (throw back to caller) یا اونارو زمانی که رخ میدن هَندل کنیم.

2. Exception ها در جاوا به دو دسته checked (در زمان کامپایل چک میشن) و unchecked (در زمان اجرا رخ میدن) تقسیم میشن اما Error ها همشون توی دسته unchecked قرار میگیرن (زمان اجرا رخ میدن).

قبل توسط (1.1هزار امتیاز)
+1
تشکر از جواب کاملتون.

سوالات مشابه

0 امتیاز
0 پاسخ 575 بازدید
+1 امتیاز
1 پاسخ 519 بازدید
+1 امتیاز
1 پاسخ 685 بازدید
0 امتیاز
1 پاسخ 575 بازدید
0 امتیاز
1 پاسخ 678 بازدید
+2 امتیاز
2 پاسخ 1.3هزار بازدید
+4 امتیاز
1 پاسخ 2.6هزار بازدید
+1 امتیاز
1 پاسخ 445 بازدید
0 امتیاز
0 پاسخ 363 بازدید
سوال شده 6 سال قبل در برنامه نویسی توسط 1993 (242 امتیاز)
...