A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 编程小黑 中级黑马   /  2015-7-18 23:29  /  217 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、异常:就是程序在运行时出现不正常情况
异常由来:问题也是现实生活中一个具体的事物,就好比如一辆汽车坏了,那么这个坏的原因也是具体的,可以看作为一个对象,
而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()的方法,直接打印出异常的信息。


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马