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

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

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

}

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

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

موفق باشید

جواب 10 ماه قبل توسط Saeed Mirshams (146 امتیاز)
انتخاب شده در 8 ماه قبل توسط ssss

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

0 رأی
1 جواب میانگین بازدید روزانه 0.13116 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.37715 بازدید
+3 رأی
1 جواب میانگین بازدید روزانه 0.451,006 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.15141 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.25264 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.44388 بازدید
سوال 2 سال قبل در تالار برنامه نویسی توسط ali-nb (10 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.28355 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.1753 بازدید
سوال 10 ماه قبل در تالار برنامه نویسی توسط 1993 (46 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.36566 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.12271 بازدید
کانال تلگرام جواب یاب
...