java异常总结
来源:互联网 发布:江西先锋软件集团 编辑:程序博客网 时间:2024/06/03 17:03
总结:一图,5关键字,先逮小后逮大,异常和重写的关系,throw和throws的区别,自定义异常,常用的异常。
注意观察错误的名字和行号。
一图:
5关键字:try catch finally throw throws printStackTrace getMessage。
先逮小后逮大:不可以调换顺序,就像已经用大网捞鱼后,再用小网捞不着。
异常和重写的关系:重写方法需要抛出与原方法所抛出异常类型一致异常或不抛出异常。
throw和throws的区别:throws抛异常最简单的写法:throws Exception。最终处理需写try catch。
参考:http://www.cnblogs.com/xiohao/p/3547443.html
自定义异常:1、继承Exception:必须逮异常。继承RunTimeException:不是必须逮。2、对 if 语句的影响:一旦抛出异常,后面的语句不会执行,方法结束。
步骤:1、通过继承java.lang.Exception类声明自己的异常类。
2、在方法适当的位置生成自定义异常的实例,并用throw 语句抛出。
3、在方法的声明部分用throws语句声明该方法可能抛出的异常。
常用的异常:FileNotFoundException / IOException / Arithmetic /
注意:处理不了,向外抛。
catch里面一定要做处理,否则异常就被吞了。
?可以将涉及方法全部打印。
经验:
1、处理运行时异常,,采用逻辑去合理规避同时辅助try-catch处理。
2、在多重catch后面,可以加一个catch(Exception)来处理可能会被遗漏的异常。
3、对不确定的代买,可以加上try-catch。
4、尽量处理异常,切记只调用printStackTrace()去打印输出。
5、具体如何处理异常,要根据不同业务需求和异常类型去决定。
6、尽量添加finally语句块去释放占用的资源。
代码示例:
import java.io.*;public class Test3 {//年龄不能为负public void regist(int age) throws MyException {if(age < 0) {throw new MyException("年龄为负不合理. ",1);}System.out.println("年龄是:" + age);}//管理存入的年龄是否正确public void manage() {try {regist(-100);}catch (MyException m) {System.out.println("错误信息" + m.getId());m.printStackTrace();}System.out.println("over.");}public static void main(String[] args) {//IOException. FileNotFoundException .Exception.//try {}catch(){}catch(){}finally//printStrackTrace.getMessageFileInputStream in = null;try {in = new FileInputStream("myfile.txt");int b ;b = in.read();while(b != -1) {System.out.print((char)b);b = in.read();}}catch (FileNotFoundException f) {System.out.println(f.getMessage());}catch (IOException e) {System.out.println(e.getMessage());}finally {try {in.close();}catch (IOException e){//注意:这里不可以使用FileNotFoundException。//否则显示:未报告的异常错误IOException; 必须对其进行捕获或声明以便抛出 e.printStackTrace();}}System.out.println();//测试 MyExceptionTest3 t3 = new Test3();t3.manage();}}//myException,Exception//有错误信息,错误类型。class MyException extends Exception {private int id;private String message;public MyException(String message,int id) {this.message = message;this.id = id;}public int getId() {return id;}public String getMessage() {return message;}}
结果:
123456.5987
错误信息1
MyException: 年龄为负不合理.
at Test3.regist(Test3.java:8)
at Test3.manage(Test3.java:16)
at Test3.main(Test3.java:56)
over.
- Java语法总结 - 异常
- Java异常处理总结
- Java异常处理总结
- Java异常总结
- Java异常处理总结
- Java异常处理总结
- java 异常处理总结
- Java异常处理总结
- java异常的总结
- Java 异常总结
- Java异常类总结
- JAVA异常题目总结
- Java异常 总结
- Java异常类总结
- Java异常处理总结
- java异常处理总结
- Java常见异常总结
- java异常总结(转)
- JVM学习之-栈
- URAL 1272 Non-Yekaterinburg Subway (查并集)
- Spring学习(九)使用ioc注解方式配置bean
- springmvc 上传文件
- java异常处理
- java异常总结
- 拉开大变革序幕(上):在浪潮之巅观望Docker
- echart横坐标太长导致坐标显示不完全
- jQuery table行变色
- log4j文件
- ios 支付宝总结
- 获取服务器端JSON数据
- php学习--1
- 使用NSClassFromString