なぜjava.lang.RuntimeException
(またはそのサブクラス)がtry/catchでコードを書くことを強制しないのですか
提供された:
java.lang.Exception
またはそのサブクラス (checked-exception と呼ばれる) は、コードをtry/catch
ブロック内に記述することを強制するか、それを処理することを強制します。
java.lang.RuntimeException
では、サブクラス (unchecked-exception と呼ばれる)が、拡張している場合でも、try/catch ブロックにコードを書くことを強制しないのはなぜですか?java.lang.Exception
追加された例:
public class ExceptionTest
{
public static void main(String[] args)
{
// HOW COMPILER COME TO KNOW or DECIDE THIS METHOD IS THROWING RuntimeException or Exception (Keep in mind java.lang.RuntimeException is again extending java.lang.Exception)
new ExceptionTest().test_1();
}
public void test_1() throws MyException
{
}
}
class MyRuntimeRuntimeException extends RuntimeException
{
public MyRuntimeRuntimeException() {
// TODO Auto-generated constructor stub
}
}
class MyException extends Exception
{
public MyException() {
// TODO Auto-generated constructor stub
}
}