zoukankan      html  css  js  c++  java
  • Java基础 -- 常见异常

    1.常见异常

    Exception 类是 Throwable 类的子类。除了Exception类外,Throwable还有一个子类Error 。

    异常类有两个主要子类:IOException和RuntimeException。

    异常类

    IDEA会提前报错,但了解一些不会有错。

    1. 空指针异常:NullPointException

    调用了未经初始化或不存在的对象。

    2. 数组转换异常:ClassCastException

    试图将某对象强制执行向下转型,但该对象又不可转换为其子类的实例。

    Object obj = new Integer(0);
    String str = obj;
    

    3. 没有访问权限:illegalAccessException

    程序调用一个类,但当前方法对该类没有访问权限。

    4. 方法参数错误:illegalArgumentException

    很多J2ME的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setColor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。

    5. 数组下标越界异常:IndexOutOfBoundsException

    调用数组的下标值超出数组范围。

    6. 文件结束异常:EOFException

    当程序在输入的过程中遇到文件或流的结尾时,引发异常。因此该异常用于检查是否达到文件或流的结尾

    7. 文件未找到:FileNotFoundException

    文件不存在或存在但由于某些原因不允许访问。该异常由FileInputStream,FileOutputStream,RandomAccessFile的构造器声明抛出

    8. 字符串转换为数字异常:NumberFormatException

    比如包含非法字符。

    9. 未找到指定类:ClassNotFoundException

    程序试图通过字符串来加载某个类时可能引发异常

    10. 实例化异常:InstantiationException

    试图通过Class的newInstance方法创建某个类的实例,但程序无法通过该构造器来创建该对象时引发

    11. 操作数据库异常:SQLException

    12. 数学运算异常:ArithmeticException

    比如除0

    13. 安全异常:SecurityException

    由安全管理器抛出的异常,指示存在安全侵犯。

    2.处理方式

    1. try...catch...

      try{
         // 程序代码
      }catch(异常类型1 异常的变量名1){
        // 程序代码
      }catch(异常类型2 异常的变量名2){
        // 程序代码
      }catch(异常类型2 异常的变量名2){
        // 程序代码
      }
      
    2. throws/throw

      import java.io.*;
      public class className
      {
          //多异常用,隔开即可
         public void withdraw(double amount) throws RemoteException,
                                    InsufficientFundsException
         {
             // Method implementation
         }
         //Remainder of class definition
      }
      
    3. try...catch...finally...

      finally 关键字用来创建在 try 代码块后面执行的代码块。

      无论是否发生异常,finally 代码块中的代码总会被执行。

      try{
        // 程序代码
      }catch(异常类型1 异常的变量名1){
        // 程序代码
      }catch(异常类型2 异常的变量名2){
        // 程序代码
      }finally{
        // 程序代码
      }
      

    只是举几个出现频率高的异常,希望多了解的小伙伴请转https://www.cnblogs.com/qlqwjy/p/7816290.html这位大佬总结的已经很详细了。

  • 相关阅读:
    python笔记第十一天 模块补充
    python笔记第十天 模块
    python笔记第九天 装饰器
    python笔记第八天 迭代器与生成器
    python笔记第七天 文件操作
    python笔记第六天 函数和函数的内置方法
    C语言----指针形参(指向指针的指针形参)
    NEON使用方法
    ARM NEON指令集总结
    三维变换矩阵左乘和右乘分析
  • 原文地址:https://www.cnblogs.com/bwxx/p/13179401.html
Copyright © 2011-2022 走看看