• 异常处理


    1.抛出异常:throw 异常对象;

    下面的代码是一个进制转换代码,可以转换为2进制和8进制,如果输入其他参数,则抛出异常。

    复制代码
     1 public static String transform(int value,int radix){
     2         if(value <0 )
     3             throw new IllegalArgumentException("需要转换的数字不是自然数!");
     4         
     5         if(radix != 2 || radix != 8)
     6             throw new IllegalArgumentException("进制参数非法!");
     7         
     8         StringBuffer sb = new StringBuffer();
     9         int temp;
    10         if(value == 0)
    11             return "0";
    12         
    13         while(value != 0){
    14             temp = value%radix;
    15             sb.insert(0, temp);
    16             value /= radix;
    17         }
    18         return sb.toString();
    19     }
    复制代码

    2.声明异常:声明异常类似于声明药品的副作用,在声明函数的时候同时在函数后面声明该函数可能抛出的异常,这样调用这个函数的程序员就知道这个函数可能出现的异常,就可以提前对这些异常进行处理。上面的函数还可以声明为以下形式:

    public static String transform(int value,int radix) throws IllegalArgumentException{
        //......
    }

    3.捕获异常

    复制代码
    try{
        //逻辑代码
    }catch(异常类名 参数){
        //异常处理代码
    }finally{
        //清理代码
    }
    复制代码

    上述try中的代码是正常执行的代码,如果在执行这段代码的过程中抛出了异常,则根据catch中的异常类名匹配到对应的异常处理代码,最后因为在 try中遇到异常时就停止执行try中剩下的代码,而有时候需要做一些后续的清理工作,比如关闭文件,断开网络连接等,所以在finally里面处理这些 问题。

    复制代码
    String s = "123";
    try{
        int n = Integer.parseInt(s);
                
        char c = s.charAt(4);
    }catch(NumberFormatException e){
        System.out.println("该字符串无法转换!");
    }catch(StringIndexOutOfBoundsException e){
        System.out.println("字符串索引越界!");
    }catch(Exception e){
        System.out.println("其他异常!");
    }
    复制代码

    上述代码中Exception e这个异常包含了所有类型的异常,它是上述两个异常的父类,所以它要写在这两个异常的后面。

    4.常用异常处理方法

     不处理

     直接处理:提醒用户输入错误,对值进行修改等

     重新抛出:重新抛出一个自定义异常

     在方法中声明:即在引起异常的这个方法声明时声明这个异常,使得调用这个方法的程序员去处理这个异常。一个例子如下:

    public void test(String s)throws NumberFormatException{
        int n = Integer.parseInt(s);
        System.out.println(n);
    }

    上述test方法没有在方法内部处理异常,而是将异常交给调用test函数的程序去处理。

  • 相关阅读:
    如何制定一周工作计划
    如何评估工作offer(1)
    Iraq shoethrower inspires Web games
    数据加密技术
    数字签名技术原理
    [转载]CSS使用技巧大全
    数字签名介绍
    数字签名原理剖析
    6个有用的MySQL语句
    PGP概述及原理
  • 原文地址:https://www.cnblogs.com/felix-/p/4319380.html
Copyright © 2020-2023  润新知