一、基础概念
(1)异常:Java程序在运行时期发生的不正常情况。
Java就按照面向对象的思想对不正常情况进行描述和对象的封装。
(2)异常问题分类: (Throwable:定义对于问题共性的功能。)
1.Error:由系统底层发生的,jvn告诉使用者。不做针对性处理,直接修改代码。
2.Exception:发生并告诉使用者,可以进行针对性的处理。
(3)异常的处理情况:
1.遇到问题不进行具体的处理,继续抛给调用者。就是在函数上通过throws关键字声明异常。目的是让调用者可以进行处理。
2.针对性的处理方式:捕获!
try
{
//有可能发生异常的代码。
}
catch(异常类 变量)
{
//这是真正的捕获,处理异常的代码;
}
finally
{
//一定会被执行的代码。
}
二、虚拟机处理异常代码
1 class Demo 2 { 3 int div(int a,int b)throws Exception//声明异常Exception 4 { 5 return a/b; 6 } 7 } 8 9 class ExceptionDemo1 10 { 11 public static void main (String[] arge)throws Exception//将异常Exception抛给虚拟机处理 12 { 13 Demo d = new Demo(); 14 int num = d.div(4,0); 15 System.out.println("num="+num); 16 System.out.println("over"); 17 } 18 }
三、捕获处理异常代码(二)
1 class Demo 2 { 3 int div(int a,int b)throws Exception//声明异常Exception 4 { 5 return a/b;//throw new ArithmeticException("/ by zero")抛给调用者。 6 } 7 } 8 9 class ExceptionDemo1 10 { 11 public static void main (String[] arge) 12 { 13 Demo d = new Demo(); 14 15 //对异常进行处理 16 try 17 { 18 int num = d.div(4,0); 19 System.out.println("num="+num); 20 } 21 catch(Exception e) 22 { 23 //处理这个对象,可以使用该对象的方法。 24 System.out.println("处理异常的代码:除数不能为0"); 25 System.out.println(e.getMessage());//异常信息 26 System.out.println(e.toString());//异常名称+异常信息 27 e.printStackTrace();//异常名字+异常信息+位置。jvm默认处理收到异常就是调用这个方法。将信息显示在屏幕上。 28 } 29 System.out.println("over"); 30 } 31 }