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

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

در آموزش‌ های جاوا کاپ در قسمت 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();
    }

}

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

سوال 4 سال قبل در تالار برنامه نویسی توسط ssss (467 امتیاز)
ویرایش 4 سال قبل توسط 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 باید توی اعلان متد این موضوع بیاد

موفق باشید

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

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

0 رأی
1 جواب میانگین بازدید روزانه 0.11189 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.33911 بازدید
+3 رأی
1 جواب میانگین بازدید روزانه 0.451,373 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.16274 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.21395 بازدید
0 رأی
4 جواب میانگین بازدید روزانه 0.48806 بازدید
سوال 4 سال قبل در تالار برنامه نویسی توسط ali-nb (10 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.27551 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.1109 بازدید
سوال 3 سال قبل در تالار برنامه نویسی توسط 1993 (242 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.2158 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.491,143 بازدید
کانال تلگرام جواب یاب
...