2

这段代码显示异常:

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

为什么以及如何发生?不使用 try and 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 回答