JAVA学习第三弹(异常)

来源:互联网 发布:饼干网络意思 编辑:程序博客网 时间:2024/06/03 11:40
  • 异常的分类
  • 异常的基本样式
  • 异常捕获和抛出

1.异常的分类

异常的分类
  如上图所示,Throwable主要分为两类,第一类就是Error(就是我们所说的错误,这里不做过多的介绍),第二类就是Exception(我们所说的异常)。
  由RuntimeException派生的主要异常:

  • 算数运算异常(ArithmeticException):整数除零时,抛出。
  • 数组越界异常(ArrayIndexOutofBoundsofException)
  • 数组存储异常(ArrayStoreException):对数组中存放费数组声明类型对象时抛出。
  • 访问空指针(NullPointException)

  由IOException派生的主要异常:

  • 文件已结束异常(EOFException)
  • 文件未找到异常(FileNotFoundException)

2.异常的基本样式

public void method(){        try {            //可能产生异常的语句或者方法        } catch (Exception e) {            // 对异常的处理            e.printStackTrace();        }        finally{            //无论是否抛出异常都要执行的代码块        }    }

3.异常的捕获和抛出

  关于这个问题,异常的捕获,主要是捕获try{}中的异常信息,比如下面这个例子:

try {    throw new Exception(); // 抛出异常    } catch (Exception e) { //捕获Exception类型的异常      e.printStackTrace(); //将异常信息显示出来    }    finally{    System.out.println("zhanghanlun");// 无论有没有异常都要执行的语句    }

其运行结果为:
异常运行结果

  异常的抛出,就是异常会逐级上溯,直到找到处理他的代码为止。在异常的抛出中,有throw和throws两种抛出,各有各的不同。

  • throw

  使用throw语句时,必须声明一个异常对象,这个对象是Throwable派生类的对象。例如:

throw new Exception(); //新创建了一个Exceptiony异常。

  如果一个方法可以导致一个异常但不处理它,它必须在方法声明时包含一个throws子句以使方法调用者可以保护他们自己而不发生异常。

public static void main(String[] args) {            try {                String s=getInput();            } catch (Exception e) {                e.printStackTrace();            }            finally{                System.out.println("zhanghanlun");            }}    static String getInput() throws IOException{  //如果此处不用throws则        char[]buffer=new char[10];        int count=0;        boolean flag=true;        while(flag){            buffer[count]=(char)System.in.read();//承接上一处注释,此处要用try/catch语句包围。            if(buffer[count]=='\n'){                flag=false;            }else{                count++;            }        }        return new String(buffer);    }
0 0
原创粉丝点击