Java Exception异常

第五章  异常处理
一,异常的概述
1.什么是异常:异常就是在程序的运行过程中所方式的不正常的事件,
   它会中断正在运行的程序。
2.处理错误的两个类
a.Error(错误):java运行环境中内部错误,或硬件问题。程序员无法处理
b.Exception(异常):程序设计出现弊端,编写程序设计不够全面。


二.java中的异常
1.异常对象分为两大类(Throwable类的子类)
a.Error(错误)
4个常用的子类:AWTError , LinkageError , VirtualMachineError , ThreadDeat
b.Exception(异常)
子类很多,大致分为3类:
(1)IOException
(2)RuntimeException(运行时异常)
(3)其他异常(编译时异常)
c.引起RuntimeException(运行时异常)的原因包括:
(1)错误的类型转换
(2)数组越界
(3)数学计算错误
(4)试图访问一个空对象
d.引起IOException异常的原因包括:
(1)试图从文件结尾处读取信息;
(2)试图打开一个不存在或者格式错误的URL
2.常见异常;
(1)ArithmeticException(数学计算异常):当出现异常的运算条件时,抛出此异常。
(2)InputMismatchException:由 Scanner 抛出,表明获取的标记与期望类型的模式不匹配,或者该标记超出期望类型的范围
(3)NullPointerException(访问对象为空):当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
(4)FileNotFoundException(文件访问异常<编译时异常>)当试图打开指定路径名表示的文件失败时,抛出此异常。
等等。。。

3.未检查异常,已检查异常
Error 的子类和Runtion的子类称:未检查异常(可以避免)
其他异常:已检查异常(编译时异常)
三.处理Excetion
1.常见异常
运行时异常
(1)ArithmeticException(数学计算异常):当出现异常的运算条件时,抛出此异常。
(2)InputMismatchException:由 Scanner 抛出,表明获取的标记与期望类型的模式不匹配,或者该标记超出期望类型的范围
(3)NullPointerException(访问对象为空):当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
(4)InterruptedException(线程中断异常)
IOException
(1)FileNotFoundException(文件访问异常<编译时异常>)当试图打开指定路径名表示的文件失败时,抛出此异常。
(2)EOFExcetion(读写文件尾异常)
(3)IOException(IO异常)当发生某种 I/O 异常时,抛出此异常。此类是失败或中断的 I/O 操作生成的异常的通用类。 
2.java中的异常处理机制
a.Throw(抛出异常):将被提交给Java运行环境时。
b.catch(捕获异常):java运行环境收到异常时。


3.try-catch-finally处理异常
格式:try {
//异常代码
} catch (FileNotFoundException e) {//可能出现的异常
e.printStackTrace();//跟踪异常事件发生时执行堆得内容
}finally{
//无论是否有异常,都会执行。
}
4,异常类的继承
Exception(异常)
子类很多,大致分为3类:
(1)IOException
(2)RuntimeException(运行时异常)
(3)其他异常(编译时异常)


5,访问异常信息
异常对象包括的几个常用方法
(1)getMessage();返回该异常的详细秒速字符串;
(2)printStackTrace();将该异常的跟踪栈信息输出给标准错误输出;
(3)printStackTrace(PrintStream s);将该异常的跟踪栈信息输出到指定输出流;
(4)getStackTrace();返回该异常的跟踪栈信息;
6,使用throws声明抛出异常
格式:访问修饰符 数据类型 方法名(参数列表)throws 异常列表{//可以抛出多个异常
}
1.将方法中的异常抛给调用者来处理
一般多用于“已检查异常”
7.throw抛出异常(在恰当的地方抛出异常)
步骤:找到一个合适的异常
     实例化这个异常
     抛出这个异常
8.捕获异常和抛出异常结合使用
可以在方法中通过catch捕获的异常交给调用者处理。也可以向外抛出另外一个异常的实例。
9.进行方法重写时对异常的处理
1.重写方法抛出异常,可以抛出与被重写方法相同的异常或重写方法异常的子类。
2.如果父类中的方法没有抛出异常。那么子类方法中也不能抛出异常。
3.实现方法必须处理被调用方法抛出的异常
四,自定义异常
自定义异常:继承Excetion,或继承其他异常
规则:1.一般定义异常需要定义两个构造方法,一个是无参,另一个是带一个字符串的构造方法;
(该字符串作为该异常对象的详细说明)
     2.通过super();传给异常父类对象message属性;
     3.重写toString方法。用于返回这个类的信息。
 通过printStackTrace()方法追踪异常源头
e.printStackTrace();
将该异常的跟踪栈信息输出给标准错误输出;
五,异常处理的规则
1.不要过度使用异常
2.不要使用庞大的try块
3.不要忽略捕捉到的异常





























































































































































































































































  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值