首页 > 试题广场 >

异常处理机制

[问答题]

请你介绍一下异常处理机制都有什么?

3 种,异常捕获,手动抛出异常,方法后抛出异常
编辑于 2019-03-30 21:57:15 回复(0)
throw:手动抛出异常,一般由程序员在方法内抛出Exception的子类异常。 throws:声明在方法名之后,告诉调用者,该方法可能会抛出异常,也就是说异常发生后会抛给调用者,由调用者处理异常。 捕获机制:try-catch-finally
发表于 2018-12-25 23:34:34 回复(0)
在Java应用程序中,异常处理机制为:抛出异常,捕捉异常。 抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。 捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适 的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适 的异常处理器,则运行时系统终止。同时,意味着Java程序的终止。 对于运行时异常、错误或可查异常,Java技术所要求的异常处理方式有所不同: 由于运行时异常的不可查性,为了更合理、更容易地实现应用程序,Java规定,运行时异常将由Java运行时系统自动抛出,允许应用程序忽略运行时异常。 对于方法运行中可能出现的Error,当运行方法不欲捕捉时,Java允许该方法不做任何抛出声明。因为,大多数Error异常属于永远不能被允许发生的状况,也属于合理的应用程序不该捕捉的异常。 对于所有的可查异常,Java规定:一个方法必须捕捉,或者声明抛出方法之外。也就是说,当一个方法选择不捕捉可查异常时,它必须声明将抛出异常。 通常使用关键字try、catch、finally来捕获异常: try块:用于捕获异常。其后可接零个或多个catch块,如果没有catch块,则必须跟一个finally块。 catch块:用于处理try捕获到的异常。 finally块:无论是否捕获或处理异常,finally块里的语句都会被执行。当在try块或catch块中遇到return语句时,finally语句块将在方法返回之前被执行。在以下4种特殊情况下,finally块不会被执行: 1)在finally语句块中发生了异常。 2)在前面的代码中用了System.exit()退出程序。 3)程序所在的线程死亡。 4)关闭CPU。 try、catch、finally语句块的执行顺序: 1)当try没有捕获到异常时:try语句块中的语句逐一被执行,程序将跳过catch语句块,执行finally语句块和其后的语句; 2)当try捕获到异常,catch语句块里没有处理此异常的情况:当try语句块里的某条语句出现异常时,而没有处理此异常的catch语句块时,此异常将会抛给JVM处理,finally语句块里的语句还是会被执行,但finally语句块后的语句不会被执行; 3)当try捕获到异常,catch语句块里有处理此异常的情况:在try语句块中是按照顺序来执行的,当执行到某一条语句出现异常时,程序将跳到catch语句块,并与catch语句块逐一匹配,找到与之对应的处理程序,其他的catch语句块将不会被执行,而try语句块中,出现异常之后的语句也不会被执行,catch语句块执行完后,执行finally语句块里的语句,最后执行finally语句块后的语句;
发表于 2019-04-25 18:42:30 回复(0)
使用try-catch来捕获异常,使用thows声明异常,用thow将异常抛出
发表于 2019-04-25 15:52:29 回复(0)
error和except都继承了throwable 接口,error是系统内部出现的问题,不能用程序解决,比如内存,虚拟机问题,except是程序造成的 可以通过try catch finally来处理可能出现的异常,throw抛出一个异常或者new一个异常,手动抛出
发表于 2019-03-07 23:17:52 回复(1)
java.lang.Exception为所有异常的超类,下面分为Error和Exception,Error为jvm无法处理的错误,Exception分为受检异常和非受检异常
异常处理机制分为:抛出异常、捕获异常
抛出异常:
常用方法throw和throws
throw:用在方法体中或者用来抛出用户自定义异常,并且抛出一个异常对象。程序在执行到throw语句时立即停止,如果要捕捉throw抛出的异常,则必须使用try-catch语句块或者try-catch-finally语句。
throws:通常用在方法声明时,用来指定方法可能抛出的异常,多个异常可以用逗号隔开
捕获异常:
先执行try 块中的代码,如果正常运行没有发生异常则执行完后执行finally 代码块中的代码;如若在try 中发生异常且被catch 捕捉到则执行catch 中的代码块,然后执行finally 块中的代码;

编辑于 2020-10-17 15:40:23 回复(0)
异常处理机制的基类为throwalbe,下面有error 和exception;其中error一般发生在虚拟机运行过程中,一般不需要程序员处理,exception分为 runtimeexception(数组越界或者除数是0等情况)和其他异常,运行时异常可以捕获也可以交给缺省的异常处理程序,其他异常必须通过try-catch来捕获并进行异常处理
发表于 2019-05-06 20:15:17 回复(0)
在Java应用程序中,异常处理机制为:抛出异常,捕捉异常。 抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。 捕获异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适 的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适 的异常处理器,则运行时系统终止。同时,意味着Java程序的终止。
发表于 2019-04-30 22:29:11 回复(0)
在Java应用程序中,异常处理机制为:抛出异常,捕捉异常。
发表于 2019-04-30 22:28:46 回复(0)
Java应用程序中 异常处理机制为 抛出异常 捕捉异常。         抛出异常 当一个方法出现错误引发异常时 方法创建异常对象并交付运行时系统 异常对象中包含了异常类型和异常出现时的程序状态等异常信息 运行时系统负责寻找处置异常的代码并执行 捕捉异常 在方法抛出异常之后 运行时系统将转为寻找合适的异常处理器(exception handler)潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合 当异常处理器所能处理的异常类型与方法抛出的异常类型相符时 即为合适的异常处理器 运行时系统从发生异常的方法开始 依次回查调用栈中的方法 直至找到含有合适异常处理器的方法并执行 当运行时系统遍历调用栈而未找到合适的异常处理器 则运行时系统终止 同时 意味着Java程序的终止        
发表于 2019-04-26 22:39:50 回复(0)


error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。

exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。

发表于 2019-04-26 21:26:26 回复(0)
抛出异常,捕捉异常
发表于 2019-04-25 19:08:30 回复(0)
error和except都继承了throwable 接口,error是系统内部出现的问题,不能用程序解决,比如内存,虚拟机问题,except是程序造成的 可以通过try catch finally来处理可能出现的异常,throw抛出一个异常或者new一个异常,手动抛出
发表于 2019-04-25 18:47:13 回复(0)
抛出异常:当一个方法出现错误引发异常时,方法创建异常对象并交付运行时系统,异常对象中包含了异常类型和异常出现时的程序状态等异常信息。运行时系统负责寻找处置异常的代码并执行。        
捕捉异常:在方法抛出异常之后,运行时系统将转为寻找合适的异常处理器(exception handler)。潜在的异常处理器是异常发生时依次存留在调用栈中的方法的集合。当异常处理器所能处理的异常类型与方法抛出的异常类型相符时,即为合适的异常处理器。运行时系统从发生异常的方法开始,依次回查调用栈中的方法,直至找到含有合适异常处理器的方法并执行。当运行时系统遍历调用栈而未找到合适的异常处理器,则运行时系统终止。同时,意味着Java程序的终止。
发表于 2019-04-25 18:42:26 回复(0)
抛出异常 捕捉异常
发表于 2019-04-25 18:27:49 回复(0)
Ly~头像 Ly~
java中异常处理机制有哪些? huanzhanglif LV12 2013-03-31 满意答案 icbr8071 LV12 2013-04-01 1.try和catch语句 ●将要处理的代码放入try块中,然后创建相应的catch块的列表。如果生成都异常与catch中提到的相匹配,那么catch条件中的块语句就被执行。try块后可能有许多catch块,每个都处理不同的异常。每个catch中的参数都是Exception的子类。 2.finally语句 ●finally语句定义一个总是执行的代码,而不考虑异常是否被捕获。 3.throw引起一个异常 ‍●‍‍调用申明抛出异常 public class Test{ static void MethodA() throws ArrayIndexOutOfBoundsException{ int a[] = {1, 2, 3}; for (int i = 0; i < 4; i++) { System.out.println(a[i]); } } public static void main(String args[]){ try { MethodA(); } catch (ArrayIndexOutOfBoundsException e) { System.out.println(e); } } } ●‍throw语句强制抛出异常 public class Test{ public static void main(String args[]){ try { throw new ArrayIndexOutOfBoundsException(); } catch (ArrayIndexOutOfBoundsException e) { System.out.println(e); } } }
发表于 2019-04-25 18:07:49 回复(0)
throw一般在方法内部手动抛出异常,抛出exception的子类异常。throws在方法后面抛出异常,由调用者去处理异常。用try catch finally捕获异常并处理
编辑于 2019-03-22 22:44:43 回复(0)