Java之异常
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java之异常,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2597字,纯文字阅读大概需要4分钟。
内容图文
![Java之异常](/upload/InfoBanner/zyjiaocheng/801/005f61823ea54c5c87eaeeff73fe9023.jpg)
异常
异常的类型的体系结构
1、异常系列的父类:java.lang.Throwable
(1)只有它或它子类的对象,才能被JVM或throw语句“抛”出
(2)也只有它或它子类的对象,才能被catch“捕获”
2、Throwable分为两大派
(1)Error:严重错误,需要停下来解决这个问题
(2)Exception: 一般的异常,可以通过判断、检验进行避免,或者使用try...catch进行处理
3、Exception又分为两大类
(1)运行时异常:是RuntimeException或它子类的对象。
这种类型的异常,编译器不会提醒,要进行throws或try...catch进行处理,但运行时可能导致崩溃。
(2)编译时异常:
异常除了运行时异常以外的都是编译时异常。
这种类型的异常,编译器是强制要求throws或try...catch进行处理,否则编译不通过。
1)运行时异常
RuntimeException、NullPointerException,ClassCastException,ArithmeticException,NubmerFormatException,IndexOutOfBoundsException、StringIndexOutOfBoundsException、InputMisMatchException......
(2)编译时异常
FileNotFoundException、IOException、SQLException......
异常的处理
1、在当前方法中处理:try...catch...finally
//形式一:try...catch
try{
可能发生异常的代码
}catch(异常类型 异常名e){
处理异常的代码(一般都是打印异常的信息的语句)
}catch(异常类型 异常名e){
处理异常的代码(一般都是打印异常的信息的语句)
}。。。
//形式二:try...finally
try{
可能发生异常的代码
}finally{
无论try中是否有异常,也不管是不是有return,都要执行的部分
}
//形式三:try..catch..finally
try{
可能发生异常的代码
}catch(异常类型 异常名e){
处理异常的代码(一般都是打印异常的信息的语句)
}catch(异常类型 异常名e){
处理异常的代码(一般都是打印异常的信息的语句)
}
finally{
无论try中是否有异常,也不管catch是否可以捕获异常,也不管try和catch中是不是有return,都要执行的部分
}
2、在当前方法中不处理异常,明确要抛给调用者处理,使用throws
语法格式:
【修饰符】 返回值类型 方法名(【形参列表】) throws 异常列表{
}
手动抛出异常:throw
throw 异常对象;
//例如:
throw new AccountException("xxx");
throw抛出来的异常对象,和JVM抛出来的异常对象一样,也要用try..catch处理或者throws。
自定义异常
1、必须继承Throwable或它的子类
比较多的是继承RuntimeException和Exception.
如果继承RuntimeException或它的子类,那么自定义的这个异常就是运行时异常。编译器不提醒处理。
如果继承Exception,那么它属于编译时异常,编译器会强制你处理。
2、建议保留两个构造器
public 自定义异常名(){
}
public 自定义异常名(String message){
super(message);
}
3、自定义异常对象,必须手动抛出,用throw抛出
9.5 关于异常的方法
(1)e.printStackTrace():打印异常对象的详细信息
(2)e.getMessage():获取异常的message信息
关于异常信息的打印:
用System.err打印和用e.printStackTrace()都是会标记红色。
用System.out打印,成普通信息打印。
这两个打印是两个独立的线程,顺序是不能精确控制的。
内容总结
以上是互联网集市为您收集整理的Java之异常全部内容,希望文章能够帮你解决Java之异常所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。