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


        异常产生后,如果不做任何处理,程序就会被终止。Java的异常处理使程序不会因为一个异常而影响整个程序的执行。

    Java捕获异常

        Java的异常捕获结构由try、catch和finally3部分组成。

         try
         {
             //代码段(可能发生异常的代码)
         }catch(异常类型1 ex)
         {
             //对异常处理的代码段    
         }catch(异常类型2 ex)
         {
             //对异常处理的代码段
         }catch(异常类型3 ex)
         {
             //对异常处理的代码段
         }
         . 
         .
         .catch(异常类型n ex)
         {
             //对异常处理的代码段
         }finally
         {
             //总要执行的代码段
         }
    


    通常,异常处理常用一下3个函数来获取异常的有关信息:

    1.     getMessage()函数:输出错误性质
    2.     toString()函数:给出异常的类型与性质
    3.     printStackTrace()函数:指出异常的类型、性质、栈层次及出现在程序中的位置

    以下4种情况下,finally块不会被执行

    1.     在finally语句块中发生异常
    2.     在前面的代码中使用System.exit()退出程序
    3.     程序所在的线程死亡
    4.     关闭cpu

    Java常见异常

    常见的异常类
    异常类说明
    ClassCastException 类型转换异常
    ClassNotFoundException 未找到相应类异常
    ArithmeticException 算术异常
    ArrayIndexOutOfBoundsException 数组下标越界异常
    ArrayStoreException 数组中包含不兼容的值抛出的异常
    NullPointerException 空指针异常
    NoSuchFieldException 字段未找到异常
    SQLException 操作数据库异常
    NoSuchMethodException 方法未找到抛出的异常
    NumberFormatException 字符串转换为数字抛出的异常
    NegativeArraySizeException 数组元素个数为负数抛出的异常
    StringIndexOutOfBoundsException 字符串索引超出范围抛出的异常
    IOException 输入输出异常
    IllegalAccessException 不允许访问某类异常
    InstantiationException 当应用程序试图使用Class类中的newinstace()方法创建一个累的实例,而指定的类对象无法被实例化时,抛出该异常
    EOFException 文件已结束异常
    FileNotFoundException 文件未找到异常

    自定义异常

         Java内置的异常类可以描述在编程时出现的大部分异常情况,除此之外,用户只需集成Exception类即可自定义异常。

        自定义异常的步骤:

    1.          创建自定义异常类。
    2.          在方法中通过throw关键字抛出异常对象
    3.          如果在当前抛出异常的方法中处理异常,可以使用try-catch语句块捕获并处理,否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常。
    4.          再出现异常方法的调用者中捕获并处理异常。

    代码示例:

    1 public class MyException extends Exception{    //创建自定义异常,继承Exception类
    2          public MyException(String ErrorMessage)  {//构造方法
    3                   super(ErrorMessage);   //父类构造方法
    4          }
    5  }
     1 public class Tran{
     2      //定义方法,抛出异常
     3      static int avg(int number1, int number2) throws MyException {
     4           if (number1<0 || number2<0) {         //判断方法中的参数是否满足指定条件
     5               throw new MyException("不可以使用负数");  //错误信息
     6           }
     7           if (number1>100 || number2>100) {
     8               throw new MyException("数值太大了");
     9           }
    10           return (number1 + number2)/2;
    11      }
    12     public static void main(String[] args){
    13            try{
    14                  int resullt = avg(102, 150);
    15                  System.out.println(resullt);
    16             } catch(MyException e){
    17                    System.out.println(e);
    18             }
    19  }
  • 相关阅读:
    结对第二次作业——某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
    个人作业——软件工程实践总结&个人技术博客
    虚拟列表(VirtualList)在Taro3中的使用
    结对第二次作业—某次疫情统计可视化的实现
    结对第一次—疫情统计可视化(原型设计)
    软工实践寒假作业(2/2)
    软工实践寒假作业(1/2)
    个人作业——软件工程实践总结&个人技术博客
    Spring Boot
  • 原文地址:https://www.cnblogs.com/freeabyss/p/3187061.html
Copyright © 2011-2022 走看看