异常处理: IOException ClassNotFoundException 异常的概述: 1、使用返回值状态标识异常 Exception:异常,Java中可以处理的错误(NoRuntimeException运行期异常及非编译期异常, RuntimeException非运行期异常及编译期异常) Error:不可处理的错误
//运行期异常和非运行期异常
public class yichang {
public static void main(String[] args) {
//非运行期异常,预编译时发现异常
// FileInputStream fis = new FileInputStream("fos.txt");
// 运行期异常
System.out.println(5/0);
}
}
非运行期异常:
运行期异常:
异常处理机制:
try{
//可能出现异常的代码块
}catch(Exception e){
e.printStackTrace
}finally{
//最终的代码块
}
2.1、异常的捕获和处理
Throwable类(-Exception,Error)
try-catch
try{
//可能出现异常的代码块
}catch(Exception e){class
e.printStackTrace();
}
2.2多个catch
2.3finally的作用
无论之前是否有异常,我都将执行的代码块放入
2.4关键字
throw尝试处理异常但解决不了的在抛出给上一次
throws无论是否可以解决都抛给上一层
2.5常见的RuntimeException
lllegalArgumentException:参数不合法不正确
NullPointereException:空指针异常
ClassCastException:强制转化异常
NumberFormatException:字符串不能转化为
package cn.edu.sqxy.day14;
//运行期异常
public class runtima {
// 1、空指针异常
public void test01(){
String str = null;
System.out.println(str);
}
// 测试数组下标越界
public void text02(){
byte[] bytes = "Hello".getBytes();
System.out.println(bytes[bytes.length]);
}
// 测试数学异常
public void text03(){
System.out.println(5/0);
}
// 测试强制类型转化异常
public void text04(){
Object obj = "Hello";
Integer i = (Integer)obj;
}
// 测试NumberFormat异常
public void text05(){
int num = Integer.parseInt("a");
}
}
2.6API
printStackTrack输出错误信息,执行堆栈信息
getMassage获取信息
getCause获取异常出现的原因
2.7自定义异常
package cn.edu.sqxy.day14;
//自定义异常
public class copyexception extends Exception{
// 自定义构造方法
public copyexception(){
super();
}
public copyexception(String message,Throwable cause){
super(message,cause);
}
public copyexception(Throwable cause){
super(cause);
}
}