Java 当我们使用抛出时,谁以及如何处理异常?

Java 当我们使用抛出时,谁以及如何处理异常?,java,exception-handling,Java,Exception Handling,当我们编写抛出时,那么谁在处理IOException呢?当我们使用try-catch时,我们可以在catch块中处理它。但这里是如何处理的,谁在处理 没有人在那里处理它,因为main是程序的入口点 当您使用抛出时,您将把处理异常的责任留给方法的调用者。在这里,除了JVM本身之外,没有方法的调用方,JVM本身将通过停止程序并打印堆栈跟踪来处理异常。没有人在那里处理它,因为main是程序的入口点 当您使用抛出时,您将把处理异常的责任留给方法的调用者。在这里除了JVM本身之外,没有方法的调用方,JVM

当我们编写抛出时,那么谁在处理IOException呢?当我们使用try-catch时,我们可以在catch块中处理它。但这里是如何处理的,谁在处理

没有人在那里处理它,因为
main
是程序的入口点


当您使用
抛出
时,您将把处理异常的责任留给方法的调用者。在这里,除了JVM本身之外,没有方法的调用方,JVM本身将通过停止程序并打印堆栈跟踪来处理异常。

没有人在那里处理它,因为
main
是程序的入口点


当您使用
抛出
时,您将把处理异常的责任留给方法的调用者。在这里除了JVM本身之外,没有方法的调用方,JVM本身将通过停止程序并打印堆栈跟踪来处理异常。

我相信JVM将通过停止主线程并将异常堆栈跟踪打印到标准输出来处理异常。

我相信JVM将通过停止主线程并打印异常来处理异常stacktrace到标准输出

当您有一个带有
抛出
子句的方法时,那么调用该方法的任何其他方法都必须处理异常(通过捕获它),或者通过对该类型的异常使用
抛出
子句来进一步抛出异常(因此,反过来,调用该方法的方法也必须执行相同的操作,等等)

main
方法有一个
throws
子句时,JVM将负责捕获异常,默认情况下它只打印异常的堆栈跟踪

如果要在
main
引发异常时执行特殊处理,则可以设置未捕获的异常处理程序:

class Test{

public static void main(String[] cv) throws IOException{

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

String s=br.readLine();
 }

}

当您有一个带有
throws
子句的方法时,那么调用该方法的任何其他方法都必须处理异常(通过捕获它),或者通过为该类型的异常使用
throws
子句来进一步抛出异常(因此,反过来,再次调用该方法的方法也必须这样做,等等)

main
方法有一个
throws
子句时,JVM将负责捕获异常,默认情况下它只打印异常的堆栈跟踪

如果要在
main
引发异常时执行特殊处理,则可以设置未捕获的异常处理程序:

class Test{

public static void main(String[] cv) throws IOException{

BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

String s=br.readLine();
 }

}

当一个方法声明抛出一个选中的异常时,该方法的调用方应该处理它们。在运行时异常的情况下,调用方可以处理该异常,但不需要这样做。

当一个方法声明抛出一个选中的异常时,该方法的调用方应该处理它们。在运行时exc的情况下eption,调用方可以处理异常,但不需要这样做。

Saying throws允许您在程序的该阶段跳过处理异常。最好的示例和用法是:

假设您正在创建一个整数计算器,该计算器具有多个加法、减法、除法等功能。如果您声明divide方法
抛出
DivideByZeroException,您的主计算器程序将必须处理它。这样做,您的程序就可以准确地知道发生了什么问题。如果是在函数级别下执行的,您的ma在程序中,我永远不会知道


在开发库时,这种方法非常好,因为在库函数中不能包含S.o.p语句。在这种情况下,是JVM本身处理此异常。

Say throws允许您在程序的该阶段跳过处理异常。最好的示例和用法是:

假设您正在创建一个整数计算器,该计算器具有多个加法、减法、除法等功能。如果您声明divide方法
抛出
DivideByZeroException,您的主计算器程序将必须处理它。这样做,您的程序就可以准确地知道发生了什么问题。如果是在函数级别下执行的,您的ma在程序中,我永远不会知道


在开发库时,这种方法非常好,因为您不能在库函数中包含S.o.p语句。在这种情况下,是JVM本身处理此异常。

throws
允许您在程序的该阶段跳过处理异常。说
throws
允许您跳过处理异常在计划的那个阶段。