异常---Exception的处理

.在代码编程中有异常Exception与错误error两种,他们都是继承于 Throwable ---是根类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch)其中错误Error 是 Java 程序运行中不可预料的异常情况,这种情况不能用代码解决问题,这种错误往往是硬件问题或者是运行问题。所以这种异常不可能抓取到,比如 OutOfMemoryError、NoClassDefFoundError等。

我在代码编写中遇到的主要问题还是Exception.。异常一旦发生,JVM根据发生异常的类型,产生该异常的对象,然后将对象交给代码处理,如果没有处理,就会结束这个发生异常的方法,带着方法返回方法调用处,看有没有处理没有就在向上返回,一层一层直到处理了。如果一直都没有那么就返回到main方法,那么JVM就会结束程序并打印报错。而Exception主要分为两类,一类是编译时异常,另一类是运行时异常RuntimeException/uncheckException,可以忽略捕获操作

一般运用try...catch...finally也可以运用try...catch,try...finally,不可以运用try或者finally;一般try块中书写可能发生异常的正常逻辑代码,试运行,如估计没有报错,就会按顺序一直运行,如果报错的话,就会停止运行当前代码,跳转到捕获中好(catch{})。其中finally一般用在捕获异常中,最后一定会执行的,一般用来关闭流或者数据库的连接。在try块中如果使用return则代表结束,先返回数据,而finally中执行的数据不能覆盖try块中的数据。异常可以是多个异常,那么就可以在try块后跟多个catch块来处理不同的异常,但是要注意捕获异常的顺序,将捕获子类放在前面,捕获父类放在后面,将finally放在最后,finally指不论是否发生异常都会执行的代码,无论是break或者return都无法阻止他的执行,能阻止他的只有System.exit(0);

finally的执行是在return这个动作之前,又在return准备之后。

throwable可抛出,在编程中异常还可以抛出交由调用方处理,如果要抛出首先要用throws声明抛出,再在catch中用throw进行抛出,在声明中的异常父类子类排序不影响调用方的对异常的捕获。

throw与throws的区别

1、他们都与异常抛出有关

2、throw写在方法体中,和面跟一个异常对象,throws写在方法申明的最后,后面可以跟一个或者多个异常类,异常的排序代码无影响

3、throw是到运行时才会执行抛出动作,而throws是在编译期时就警告编译者,该方法可能发生异常

一个完整方法申明:

修饰符+可选修饰符+返回类型+方法名(形参类表)+throws+可抛出异常

还有一种是自定义异常

这种异常是自己定义的,但是一定会继承Exception;因此Exception具有的所有特征,这个自定义异常都具备。

异常---Exception的处理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzdygx.html