Java - try 和 catch 异常处理如何运行

标签 java exception

我对 Java 编程几乎完全陌生,我正在尝试了解 try 和 catch 异常处理的运行方式。

我的疑问是,当我创建一个自定义异常类并将其放入主类的 try block 中时,我可以在没有引用的情况下实例化它,但是当我编写 catch block 时,我可以使用以下成员:与实例化的异常类相同,无需实例化。

例如:

public void main.....{

.....

 try{

    if(division==0){

         throw new DivisionByZero() ;
         //Divisionbyzero is my customized exception class

     } 

 }

catch(DivisionByZero e) {

   e. methodDivisionByZero;

 }

}

重点是,我可以直接使用 e 成员,而无需通过 new 实例化它。 当我抛出异常之前, e 是否以某种方式实例化(即使我没有在 try block 中写入任何引用)?

预先感谢您的回答。

最佳答案

当抛出异常时,会创建一个异常对象,并且不会在 try block 中执行更多行。这个异常对象与catch block 参数相匹配,最合适的接收参数变量中的对象就像方法参数。在这种情况下,catch(DivisionByZero e)正确的catch子句应该是catch(ArithmeticException e)来捕获被零除异常和参数e 是对异常对象的引用。

关于Java - try 和 catch 异常处理如何运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46784911/

相关文章:

java - 生产中的 UTF-8 数据请求问题

java - 为什么标准 Java 迭代器没有 peek()?

java - stub 时 PowerMockito NullPointerException

java - 索引越界异常java

java - Java中的快速排序

java - 其他可用的 SecurityManager 实现?

java - 如何在 jOOQ 生成器中强制所有 DATE 列为 LocalDateTime?

.net - 为什么 .Net 中没有 System.ClassNotFoundException?

java - 执行作业时出现 Hadoop 错误

java - 转换为对象数组时出现 ClassCastException