2

このコードは例外を示しています:

Exception in thread "main" java.lang.ArithmeticException: / by zero
        at Ankit2.main(Ankit2.java:6)

なぜ、どのように起こっているのですか?try と catch ブロックを使用せずに?

class ankit1    
{
public static void main(String args[])    
 {
        float a=20,b=120,c=50,sum;    
        sum=(a+b+c)/0;    
        System.out.println("The average of three number is:"+sum);    
    }      

 }  
4

2 に答える 2

7

それはランタイム例外です。

それらを宣言またはキャッチする必要はありません。

コードが (宣言されているかどうかに関係なく) キャッチしない例外は、実行中のスレッドをクラッシュさせます。プログラムを開始したメイン スレッドの場合、JVM は終了する前にスタック トレースを出力します。

于 2012-08-27T06:01:06.003 に答える
4

ゼロ除算などの操作は、チェックされていない例外をスローします。これが、コードが try/catch ブロックなしで問題なくコンパイルされた理由です。これは、実行時に例外がスローされないという意味ではありません。チェックされた例外とチェックされていない例外の違いを調べてください。

于 2012-08-27T06:04:57.713 に答える