一、异常:就是程序在运行时出现不正常情况
异常由来:问题也是现实生活中一个具体的事物,就好比如一辆汽车坏了,那么这个坏的原因也是具体的,可以看作为一个对象,
而java中的异常,其实就是java对不正常情况进行描述后的对象体现
对于异常的划分,可以分为两种:
一种是jvm可以解决的问题Exception,一种是jvm不可以解决的问题error
对于Error一般不编写针对性的代码对其进行处理
对于Exception可以使用针对性的处理方式进行处理
二、程序在运行时,先报语法的错误,然后才报异常对于异常Exception,也分为两种:
1、编译时被检测的异常
2、编译时不被检测的异常(运行时异常,RuntimeException以及其子类)
当我们遇到异常(Exception)的时候要怎么解决这类问题呢,以下分析的是对异常Exception的处理?
三、对多异常的处理
1、声明异常时,建议声明更为具体的异常,这样处理的可以更具体
2、对方声明几个异常,就对有几个catch块,不要定义多余的catch块
3、如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面、、
四、需要注意的是
1、建立在进行catch处理时,catch中一定要定义具体处理方式
2、不要简单定义一句e.printStackTrace();也不要简单的定义一条输出语句
五、下面举个例子简单的说明异常的处理步奏
class Demo //类声明
{
public int get(int a ,int b)//定义取商的方法
{
int c = a/b;
return c;
}
}
class ExceptionDemo//类声明
{
public static void main(String[] args)
{
Demo d = new Demo();//创建Demo类的对象
try //尝试捕获异常
{
int a =d.get(2,0);//发现异常,并且得到异常类型new ArithmeticException();并将这个异常抛出catch;
System.out.println("*");
}
catch (ArithmeticException e)//捕获从try中抛出的异常Exception e = new ArithmeticException();
{
System.out.println(e.toString());//打印异常名称 和异常信息
}
System.out.println("程序继续运行");
}
}
只有当我们用try和catch捕获异常和处理异常的时候,程序才能继续运行,否则异常将交给虚拟机jvm进行处理,虚拟机也将会直接调用throwable中的
printStackTrace()的方法,直接打印出异常的信息。
|
|