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

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

در آموزش‌ های جاوا کاپ در قسمت 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 باید توی اعلان متد این موضوع بیاد

موفق باشید

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

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

0 رأی
1 جواب میانگین بازدید روزانه 0.13134 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.36755 بازدید
+3 رأی
1 جواب میانگین بازدید روزانه 0.451,073 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.16169 بازدید
+1 رأی
1 جواب میانگین بازدید روزانه 0.24287 بازدید
0 رأی
4 جواب میانگین بازدید روزانه 0.46472 بازدید
سوال 2 سال قبل در تالار برنامه نویسی توسط ali-nb (10 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.27384 بازدید
0 رأی
0 جواب میانگین بازدید روزانه 0.1672 بازدید
سوال 1 سال قبل در تالار برنامه نویسی توسط 1993 (111 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.4757 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.39661 بازدید
کانال تلگرام جواب یاب
...