zoukankan      html  css  js  c++  java
  • Java 异常处理

    Java异常时用来描述在一段代码中发生的异常情况的对象。

    当出现引起异常的情况时,就会创建用来表示异常的对象,并在引起错误的方法中抛出异常对象。

    Java的异常处理通过5个关键字进行处理:

    1、try

    2、catch

    3、throw

    4、throws

    5、finally

    所有的异常都是内置类Throwable的子类。紧随着Throwable之下的都是两个子类,他们将异常分为另个不同的分支,一个分支是Exception。另一个是Error。

    我们常用的手动捕获的异常处理模块的一般形式为:

    try{

    }catch(ExceptionType e){

    }

    try{

    }catch(ExceptionType e){

    }finally{

    }

    1、try catch

    为了防止并处理运行时的错误,可以简单地在try代码块中封装希望得到监视的代码。紧随着try之后,会出现一条catch语句,指定希望捕获的异常类型。

    示例代码如下:

    public class Test {
      public static void main(String [] args){
        try{
          int a = 0;
          int b= a/a;
        }catch(ArithmeticException e){
          System.out.println("devide by zero: "+e);
         }
        }
    }

    最后的输出结果是:

    devide by zero: java.lang.ArithmeticException: / by zero

    当然我们也可以使用多条catch子句,不过需要注意的一点事,异常子类必须位于所有的超类之前

    举例说明,下面的程序就会出现编译错误

    public class Test {
      public static void main(String [] args){
        try{
          int a = 0;
          int b= a/a;
        }catch(Exception e){//异常超类不能再子类之前
          System.out.println("this is an exception"+e);
         }catch(ArithmeticException e){
          System.out.println("devide by zero: "+e);
        }
       }
    }

    也可以使用嵌套的try语句,就是try语句里面嵌套一个try语句。

    2、throw和throws

    throw

    在Java程序中我们自己通过throw抛出异常。

    throw的一般形式是:

    throw ThrowableInstance;

    其实ThrowableInstance必须是Throwable或者其子类的对象。

    有两种方式可以获取Throwable对象:

    a、在catch子句中使用参数

    b、new一个新的对象

    举例说明:

    public class Test {
      public static void main(String [] args){
        try{
            try{
              throw new NullPointerException();//new关键字
            }catch(NullPointerException e){
              System.out.println("NullPointerException inside"+e);//在catch子句中使用参数
              throw e;
              }
          }catch(NullPointerException e){
            System.out.println("NullPointerException outside"+e);
           }
      }
    }

    最后的输出结果是:

    NullPointerException insidejava.lang.NullPointerException
    NullPointerException outsidejava.lang.NullPointerException

    throws

    如果方法可能引发自身不进行处理的异常,就必须指明这种行为,以便方法的调用者能够保卫他们自己以防备上诉的异常。

    throw子句的方法声明的一般形式:

    type method_name(parameter_list)throw exception_list{

    //body of method

    }

    3、finally

    finally后面的代码块,不管异常时候抛出都会执行

  • 相关阅读:
    残疾流浪歌手的令人陶醉的声音
    关于浏览器参数的获取
    项目开发文档模板
    scoped_ptr源码
    从逗号分隔的字符串中删除某个子串的js函数
    合并两个数组的js函数
    comutil.h移值(_com_error,_bstr_t,_variant_t类的移值)
    判断两个对象是否相等的js函数
    托管可执行文件的结构(The Structure of a Managed Executable File)
    访问cookie的js函数
  • 原文地址:https://www.cnblogs.com/cuglkb/p/5737323.html
Copyright © 2011-2022 走看看