面向对象之异常概述

来源:互联网 发布:三菱l系列plc编程手册 编辑:程序博客网 时间:2024/04/27 06:27
 

异常:定义及基本的认识。

----------------------------------------

·异常的体系

    Throwable

        ·Error

            ·通常出现大量问题,运行的类不存在或者内存溢出等。

            ·不要写针对代码对其处理。

        ·Exception

            ·在运行时运行出现的一起情况,可以通过try catch finally.

    ·Exception和Error的子类名都是以父类作为后缀。

面向对象之异常1

/*

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

异常由来,问题是现实生活中一个具体的事物,

         也可以通过Java的类的形式进行描述。并且封装对象

         其实就是java对不正常情况描述后的描述体现。

 

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

对于严重的,Java通过Error类进行描述。

     对于Error一般不会编写针对性的代码对其进行处理

对于非严重的,Java通过Exception类进行描述。

     对于Exception可以使用针对性的处理方式进行处理

 

无论Error或者是Exception都具有一些共性内容

比如:不正常情况的信息,引发原因等

*/

 

class Demo

 

{

int div(int a,int b)

     {

     return a/b;

     }

}

 

class ExceptionDemo

{

public static void main(String[] args)

     {

     /*

     Demo d = new Demo();

     int x = d.div(4.1);

     System.out.println("x="+x);

 

     System.out.println("over");

     */

     byte[] arr[] = new byte[1024*124*600];

}

}

 

面向对象之异常try-catch

/*

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

异常由来,问题是现实生活中一个具体的事物,

         也可以通过Java的类的形式进行描述。并且封装对象

         其实就是java对不正常情况描述后的描述体现。

 

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

对于严重的,Java通过Error类进行描述。

     对于Error一般不会编写针对性的代码对其进行处理

对于非严重的,Java通过Exception类进行描述。

     对于Exception可以使用针对性的处理方式进行处理

 

无论Error或者是Exception都具有一些共性内容

比如:不正常情况的信息,引发原因等

 

Throwable

     |--Error

     |__Exception

1,异常的处理

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

 

try

{

需要被检测的代码

}

catch(异常类 变量)

{

     处理方式的代码,:(处理方式)

}

finally

{

一定要执行的语句

}

3,对捕获到的异常对对象的

*/

 

 

 

class Demo

 

{

int div(int a,int b)

     {

     return a/b;

     }

}

 

class ExceptionDemo

{

public static void main(String[] args)

     {

    

     Demo d = new Demo();

     try

     {

         int x = d.div(4.1);

         System.out.println("x="+x);

     }

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

     {

         System.out.println("除零类");

         System.out.println(e.getMessage());//by zero

         System.out.println(e.toString());//异常名称。异常信息

 

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

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

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

     }

    

    

 

     System.out.println("over");

 

     byte[] arr[] = new byte[1024*124*600];

     }

}

======================================---------------------------------------------------------------------------

面向对象之异常声明throws和多异常处理

 

/*

对捕获的异常对象进行常见方法操作

     String getMessage():捕获异常信息

 

在函数声明异常。

便于提高安全性,让调用出进行处理,不处理编译失败。

 

对多异常的处理

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

 

2,对方申明几个异常就有几个catch块,不要定义多余的catch块!

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

 

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

不要简单的定义一句e.printstrackTrace(),

 

也不要简单的写一条输出语句。

 

*/

class Demo

{

int div(int a,int d)throws ArithmeticException,ArrayIndexOutOfBoundsException//在功能上通过throws的关键字声明了该功能有可能出现问题

     {

     int[] arr = new int[b];

     system.out.println(arr[4]);

     return a/b;

     }

}

 

 

 

class ExceptionDemo2

{

public static void main(String[] args) //throws Exception

     {

     Demo d = new  Demo();

     try//try对应多个catch

     {

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

         System.out.println("x="+x);

     }

    

     catch(Exception e)//这里面针对性的处理!

         {

         System.out.println("haha"+e.toString());

         }

     catch (Exception e)

     {

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

         System.out.println("被零除了!!");

     }

     catch (ArrayIndexOutOfBoundsException e)

         {

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

         System.out.println("角标越界啦!");

         }

        

    

 

     System.out.println("over");

     }

}

原创粉丝点击