پرتاب کردن Exception در متد‌های Override شده در جاوا

+1 رأی
میانگین بازدید روزانه 0.23157 بازدید

در آموزش‌ های جاوا کاپ در قسمت Exception Handling، گفته شده که اگر متدی در کلاس پدر استثنایی را پرتاب نکند و همان متد را در کلاس قرزند Override کنیم و سپس آن متد Override شده استثنایی را پرتاب کند، با خطای کامپایل مواجه می‌شویم. به دلیل اینکه رابطه‌ی IS-A را نقض کرده‌ایم. اما به کد زیر توجه کنید:

package com.google;

class Parent {
    void f() {
        System.out.println("Parent");
    }
}
class Child extends Parent {
    @Override
    void f() {
        System.out.println("Child");
        throw new ArithmeticException();
    }
}
public class MainApp {

    public static void main(String[] args) {
        new Child().f();
    }

}

برنامه‌ی بالا با خطای کامپایل مواجه نمیشه؟ علت چیست؟

سوال 1 سال قبل در تالار برنامه نویسی توسط ssss (462 امتیاز)
ویرایش 1 سال قبل توسط Saeed Zarinfam
https://stackoverflow.com/questions/2190161/difference-between-java-lang-runtimeexception-and-java-lang-exception

1 جواب

+2 رأی
 
بهترین جواب

سلام

لطفا به تعریف ArithmeticException توجه کنید:

public class ArithmeticException extends RuntimeException {
{

این استثنا از نوع استثنا های زمان اجرا هست.

اینکه در تعریف متدها احتمال وقوع اون اعلام نمیشه درست هست. و در زمان کامپایل خطا نمی گیریم.

اما برای خطاهای غیر runtime باید توی اعلان متد این موضوع بیاد

موفق باشید

جواب 2 ماه قبل توسط Saeed Mirshams (107 امتیاز)
انتخاب شده در 2 هفته قبل توسط ssss

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.1498 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.37633 بازدید
+3 رأی
1 جواب میانگین بازدید روزانه 0.43858 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.1389 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.28223 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.49311 بازدید
سوال 1 سال قبل در تالار برنامه نویسی توسط ali-nb (10 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.28283 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.5336 بازدید
سوال 2 ماه قبل در تالار برنامه نویسی توسط 1993 (41 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.3396 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.12242 بازدید
کانال تلگرام جواب یاب
...