Exceotion 异常
来源:互联网 发布:新疆党章党规网络答题 编辑:程序博客网 时间:2024/06/06 15:53
异常:是程序中导致程序中断的一种指令流,当异常发生时,如果没有进行良好的处理,则程序将会中断执行。
异常最大父类是 Throwable,它分为两个子类:Exception 和 Error。Exception 表示程序处理的异常,Error 表示 JVM 错误,一般不由开发人员处理。
Java 提供的是异常处理的抓抛模型:
1.”抓”:当我们执行代码时,一旦出现异常,就会在异常的代码处生成一个异常类型的对象,并将此对象抛出(自动抛出/手动抛出)。
①.一旦抛出此异常对象,那么程序就将终止执行。
②.此异常类的对象抛给方法的调用者。
2.”抓”:抓住上一步抛出的异常对象;如何抓?即为异常的处理方式。
方式一:
try{
//可能出现异常的代码
}catch(Exception1 e1){
//处理方式一
}catch(Exception2 e2){
//处理方式二
}finally{
//一定执行的代码(不管出不出现异常)
}
-如果 catch 中的异常是 “并列” 关系,顺序没有要求。
-如果 catch 中的异常是 “包含” 关系,需将子类放在上面,父类放在下面,否则报错。
-try-catch 可以相互嵌套。
方式二:在方法的声明出,显示抛出该异常对象的类型。
1.异常的对象可以逐层向上抛,直至main中,在向上抛的过程中可以通过try–catch-finally 处理。
2.throw 手动抛出一个异常
3.抛出自定义异常类(继承现有的异常类)
throws关键字主要是在方法定义上使用的,表示此方法中不进行异常处理,而交给被调用处处理。
Error 和 Exception 的区别?
Error:指的是JVM错误,这个时候的程序并没有执行,无法处理。
Exception:指的是程序中出现的错误,可以进行异常处理。
throw 和 throws 的区别?
throw:用户手工抛出异常类的实例对象。
throws:用户方法的声明上,表示此方法不处理异常,而将异常交给程序被调用处。
try-catch-finally 结构:
分析如下代码结果:
package cn.edu.pzhu.cg.Exception;public class ReturnExceptionDemo { static void methodA(){ try { System.out.println("进入方法A"); throw new RuntimeException("制造异常");//抛出异常,程序中断前先执行 fanally 里面代码 } finally { System.out.println("用A方法的finally"); } } static int methodB(){ try { System.out.println("进入方法B"); //同理,retuan 1 前,执行 finally 代码 return 1; } finally { System.out.println("用B方法的finally"); //return 2; } } public static void main(String[] args) { try { methodA(); } catch (Exception e) { //处理 methodA() 方法抛出的异常 System.out.println(e.getMessage()); } int i = methodB(); System.out.println(i); }}
正确结果:
如果将 methodB() 方法修改为如下:
static int methodB(){ try { System.out.println("进入方法B"); return 1; } finally { System.out.println("用B方法的finally"); return 2; } }
正确结果:
当执行 到 “return 1” 时,先去执行 finally 里面代码,输出信息后直接就 “return 2” 退出该方法,所以在控制台输出的结果为2。
- Exceotion 异常
- Exceotion in thread "main" Java.lang.NoclassDefFound Error( java解释出错)
- 异常
- 异常!
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- 异常
- docker入门-Javaweb环境搭建--centos7
- 微信新增自定义个性化菜单数据格式
- HTML学习
- Javascript 面向对象编程(一):封装
- 朴素贝叶斯算法原理小结
- Exceotion 异常
- Python中Json对象处理的jsonpath-rw
- Spring MVC 异常处理有3种方式
- mybatis-generator生成逆向工程的DOS窗口使用方式
- mysql的数据类型
- JavaWeb基础(2)—— JDBC 中 Statement 与 PrepareStatement 的区别
- 排序详解:桶排序
- spring-mvc无法访问jsp页面的问题
- idea 2017如何破解