Javaとの類似点と相違点で例外エラー

エラー(エラー)と例外(異常)がスローやキャッチを可能にするために、クラスの継承のみのThrowableインスタンスのJavaコード内のjava.lang.Throwableクラスのサブクラスです。

例外とエラーが異なる異常な状況のJavaプラットフォームの設計者の分類を反映して、例外は、プログラムが実行されている、と開発者は、適切な治療を捕獲しなければならない不測の事態に予想されます。エラー手段は、通常の状況下で起こることは稀であること、エラーのほとんどが非正規手続き、回復不能な状態になります。開発者は、キャプチャする必要はありません。

エラーの場合、エラーが回復不能な処理技術である、それは確かにプログラムの異常終了につながります。エラーチェックとエラータイプは、実行時に発生過半数に属していません。例外は、チェック(チェック)の例外に分けることができ、(チェック)の例外をチェックしません、あなたは異常なプロセスを表示して、ソースコードでキャプチャする必要がありますチェックすることができ、コンパイルの検査の一部があります。異常は、キャプチャするかどうかを判断するために、特定のニーズに応じて、通常、論理エラーをコードして回避することができ、実行時例外と呼ばれていない、コンパイラは必須ではありません。

以下は、一般的なエラーと例外のとおりです。

1つの実行時例外(RuntimeExceptionが):

	NullPropagation:空指针异常;
	
	ClassCastException:类型强制转换异常
	
	IllegalArgumentException:传递非法参数异常
	
	IndexOutOfBoundsException:下标越界异常
	
	NumberFormatException:数字格式异常

2.非実行時例外:

	ClassNotFoundException:找不到指定 class 的异常
	
	IOException:IO 操作异常

3.エラー(エラー):

	NoClassDefFoundError:找不到 class 定义异常
	
	StackOverflowError:深递归导致栈被耗尽而抛出的异常
	
	OutOfMemoryError:内存溢出异常

スタックオーバーフローエラーを引き起こす可能性があり、次のJavaコード。

// 通过无限递归演示堆栈溢出错误
class StackOverflow {
    public static void test(int i) {
        if (i == 0) {
            return;
        } else {
            test(i++);
        }
    }
}

public class ErrorEg {
    public static void main(String[] args) {
        // 执行StackOverflow方法
        StackOverflow.test(5);
    }
}

実行出力は次のようになります。

Exception in thread "main" java.lang.StackOverflowError
    at ch11.StackOverflow.test(ErrorEg.java:9)
    at ch11.StackOverflow.test(ErrorEg.java:9)
    at ch11.StackOverflow.test(ErrorEg.java:9)
    at ch11.StackOverflow.test(ErrorEg.java:9)

最終的にjava.lang.StackOverflowErrorをエラーにつながった無限の再帰呼び出しを経由して上記のコード。

公開された457元の記事 ウォン称賛94 ビュー10000 +

おすすめ

転載: blog.csdn.net/weixin_45743799/article/details/104736051