//异常课件——捕获
package class10923;
public class yichang1ke {
public static void main(String[] args) {
//
//算术异常
// int i=10/0;
//抓住异常
//看是否有异常,如果有异常执行catch,没有异常正常执行try内容
try
{
//空指针异常
//对象没有被实例化就去调用对象的实例方法
String str=null;
str.trim();//空指针异常位置
}
//捕获
catch(ArithmeticException e)//可以写多个异常处理,但也可以只写一个异常处理就是catch(Exception e){}
{
System.out.println("除0异常");
}
catch(Exception e)//把异常存放在e中
{
//处理
//处理的方式:1.提示给用户。2.记录异常信息,错误信息的日志。3.把异常信息打印到控制台e.printStackTrace();
// e.printStackTrace();
System.out.println("捕获异常="+e.getMessage());
}
finally//一定被执行的一段代码
{
System.out.println("一定被执行的代码");
}
System.out.println("只抓住异常不处理即,如果有异常跳过此异常继续做");
}
}
//异常总结
//常用异常:Exception(程序级处理,可以由程序处理)
//Exception处理机制:抓获 写法:1.最常用:try{}catch(异常类型及子类(直接用Exception) 变量){}——要求catch(Exception 变量)要写在最下层.
// 2.在最后一个catch加上一个 finally{}。finally{此处的代码一定被执行,无论程序是否崩溃}
// 抛出thow: 在方法中主动抛出异常实例,一般需要在方法名后加throws语句,声明抛出的类型,除了运行时异常RuntimeException
// 抛出thows: 定义在方法的后面(生命该方法抛出的异常类型),
//
//Exception常用方法:getMessage()获取异常信息
// printStacktrace 向控制台打印异常信息
//自定义异常:new Exception("自定义的异常信息") 实例化具有自定义异常信息的实例。
//自定义异常类:必须继承自Exception或他的子类
//使用:传递特定的与业务逻辑有关的异常信息,便于对特定异常进行处理
