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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 914360849 中级黑马   /  2015-5-27 21:52  /  269 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

-----------android培训java培训、java学习型技术博客、期待与您交流!------------
黑马程序员——Java基础---异常

异常

异常就是程序在运行时出现的不正常情况。

异常的由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述。并封装成对象。其实就是java对不正常情况进行描述后的对象体现。

对于问题的划分:一种是严重的,一种是非严重的问题。

对于严重的问题,java通过Error类进行描述。一般不编写针对的代码对其进行处理。

对于非严重的,java通过Exception类进行描述。对于Exception可以使用针对性的代码进行处理。

无论Error或者Exception都具有一些共性的内容。比如:不正常情况的信息,引发原因等。

异常体系:

Throwable

                   |--Error

                   |--Exception,

2,异常的处理:

java提供了特有的语句进行处理。

try

{

         需要被检测的代码;

}

catch(异常类 变量)

{

         处理异常的代码;

}

finally

{

         一定会执行的代码;

}


class Demo

{


         int div(int a,int b)

         {

                   return a/b;//new ArithmeticException

         }

}

class  ExceptionDemo

{

         public static void main(String[] args)

         {

                   Demo d=new Demo();

                   try

                   {

                            int x=d.div(4,0);

                            System.out.println(x);

                   }

                   catch (Exception e)//Exception e=new ArithmeticException

                   {

                            System.out.println(e.toString()+"被除数不正确");//e.toString();异常名称:异常信息

                            System.out.println(e.getMessage());

                             e.printStackTrace();//异常名称,异常信息,异常出现的位置

                                                                           //其实jvm默认的异常处理机制,就是在调用printStackTrace方法。

                                                                           //打印异常的堆栈的跟踪信息。

                   }

            }

}

3,对捕获到的异常对象进行常见方法操作。String getMessage();

在函数上声明异常,便于提高安全性,让调用者进行处理,不处理编译失败。

对多异常的处理:

1,  声明异常时,建议声明更为具体的异常,这样可以处理的更具体。

2,  对方声明几个异常,就对应几个catch块。

如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。

建议在进行catch处理时,catch中一定要定义具体处理方式。

不要简单定义一句:e.printStackTrace(),也不要简单的就书写一条输出语句。

自定义异常:

因为项目中会出现特有的问题,而这些问题并未被java锁描述并封装对象。

所以对于这些特有问题可以按照java的对问题封装的思想。

将特有的问题,进行自定义的异常封装。

0 个回复

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