Exception handling 检查与未检查的异常代码重用性

Exception handling 检查与未检查的异常代码重用性,exception-handling,Exception Handling,我想知道为什么我的程序会这样运行 我有一个方法,当试图除以零时抛出算术异常。我把这个方法放在一个try块中。当它抛出异常时,如果有,继续执行的catch块将捕获这个算术异常 我完全理解这部分 但是我做了一些实验。在我的方法主体中: public static int quotient(int number1, int number2) { if (number2 == 0) throw new ArithmeticException("Divisor cannot be

我想知道为什么我的程序会这样运行

我有一个方法,当试图除以零时抛出算术异常。我把这个方法放在一个try块中。当它抛出异常时,如果有,继续执行的catch块将捕获这个算术异常

我完全理解这部分

但是我做了一些实验。在我的方法主体中:

public static int quotient(int number1, int number2) {
    if (number2 == 0)
        throw new ArithmeticException("Divisor cannot be zero!");
    return number1 / number2;
}
我删除了第三行。当我删除第三行时,程序仍然运行良好,执行与以前完全相同。当发生算术异常错误时,它仍然捕获该错误


是因为算术异常是未检查的异常,并且此错误仅在运行时被捕获,因此不需要我特别声明此程序将导致未检查的异常吗?如果它是一个选中的异常,我是否需要特别声明此方法将引发一个未选中的异常?

因为您声明算术异常是一个运行时异常,所以不需要指定它引发异常


尽管您确实需要使用throws语句指定程序是否引发编译时异常。需要检查异常的一个示例是IOException。

由于您声明算术异常是运行时异常,因此不需要指定它引发异常


尽管您确实需要使用throws语句指定程序是否引发编译时异常。需要检查异常的一个示例是IOException。

如果您知道,还需要感谢一件事,您知道“将异常重新发送给调用方”意味着什么吗?您重新发送异常,这样就不必编写多个catch块。您可以将excpeption抛出给调用方,并在另一个类中处理它,而不是在源代码处处理异常。对不起,很愚蠢,但是调用方是什么意思?你能说得更具体些吗?然后我会记下你的回答,谢谢。调用者是被排除的方法,例如,在您的示例中,调用者是方法:商。假设您在另一个类中包含此方法,而不是在商类中抛出异常,它可以在调用该方法的类中处理。当您有数百个方法,每个方法都有异常时,向调用方抛出异常可以让您根据需要在一个或更少的位置处理异常。如果您知道,请再感谢一件事,您知道“将异常重新提交给调用方”是什么意思吗?您可以重新触发一个异常,这样就不必编写多个catch块。您可以将excpeption抛出给调用方,并在另一个类中处理它,而不是在源代码处处理异常。对不起,很愚蠢,但是调用方是什么意思?你能说得更具体些吗?然后我会记下你的回答,谢谢。调用者是被排除的方法,例如,在您的示例中,调用者是方法:商。假设您在另一个类中包含此方法,而不是在商类中抛出异常,它可以在调用该方法的类中处理。当您有数百个方法(每个方法都有异常)时,向调用方抛出异常允许您根据需要在一个或更少的位置处理异常。