throwsキーワードを使用してカスタム例外をスローすると、明示的に処理する必要があります。 e。 try-catchブロック内のメソッドを呼び出す必要がありますが、try-catchブロックを使用してメインメソッド内で処理しないと、throws
キーワードを使用して組み込み例外をスローしていますが、コンパイル時エラーは発生しません実行時例外が発生してもかまいません。私の質問は、カスタム例外を処理しないときに、コンパイル時にエラーが発生することです。未処理の例外です。これは組み込みの例外カスタム例外処理
class B
{
public void show() throws ArithmeticException
{
throw new ArithmeticException();
}
}
public class Myclass {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
の場合ではありませんが、私は算術例外を処理せずに上記のコードをコンパイルするときに、私は任意のコンパイル時にエラーに
class A extends Exception
{
public A()
{
System.out.println("Exception thrown");
}
}
class B extends A
{
public void show() throws A
{
throw new A();
}
}
public class Myclass {
public static void main(String[] args) {
B b = new B();
b.show();
}
}
が、私は、コンパイルを得ることはありません上記のコードは、コンパイル時にエラーが発生したことを示しています。タイプAの例外を処理していないと言っています。だから、私の質問は、カスタム例外を処理することが必須であるのに対し、組み込み例外を処理できない理由です。
達成しようとしていることをよりよく理解するためのサンプルコードを追加してください。 – sebadagostino
クラスExceptionを拡張して作成した例外は、チェックされた例外であり、メソッド宣言にスローするか、try-catchを使ってそれを処理するかを宣言する必要があります。算術例外は、ハンドルまたは宣言ルールが必須ではない実行時例外の一種です。 –
クラスruntimexceptionを拡張して例外を作成すると、コードがコンパイルされます。 –