目录
概念
在程序中的一些突发情况,导致程序崩溃
分类
Throwable
错误 Error
因为硬件原因导致的程序崩溃
软件开发工程师不需要处理
异常 Exception
检查时异常 CheckedException
因为程序语法出现的问题
处理方案:语法修改正确
运行时异常: RunTimeException
因为软化开发工程师在编写程序时,思路问题导致的程序崩溃
处理方法:将思路捋顺并修改正确,思路正确但是因为所需的外部内容存在问题,需要容错
常见异常
IndexOutofBoundsException ;数组下标越界异常
NullPointerException;空指针异常
ClassCaseException;类型转换异常,多见于父类转子类
ArithemeticException;算法异常
异常的传递 与处理
方案一:throws声明异常
语法:
访问权限修饰符 修饰符 返回值 方法名()throws 异常{
}
方案二:try catch处理异常
语法:
try{
有可能出现问题的代码
}catch(出现问题1的类型 变量名){
处理方案1
}
catch(出现问题2的类型 变量名){
处理方案2
}
...
finally{
必须执行的代码;
}
注意:
1. try catch中如果出现错误,出现问题的代码之后将不再执行
2.catch中先放子类的错误,在放父类的错误
3.finally必须被执行
方案三:throw 抛出异常
语法:
访问权限修饰符 修饰符 返回值 方法名()throws 异常{
xxx
throw 异常;//抛出异常,后面语句不再执行
xxx
}
注意:throw和throws区别
1.throw表示抛出异常,throws表示声明异常
2.throws在方法名形参之后,方法体之前使用,throw在方法中使用
定义异常
创建一个类使其继承一个异常类,重写构造函数,调用父类构造函数