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使用SMTP模块、email模块发送邮件
    harbor搭建及使用
    ELK搭建-windows
    ELK技术栈之-Logstash详解
    【leetcode】1078. Occurrences After Bigram
    【leetcode】1073. Adding Two Negabinary Numbers
    【leetcode】1071. Greatest Common Divisor of Strings
    【leetcode】449. Serialize and Deserialize BST
    【leetcode】1039. Minimum Score Triangulation of Polygon
    【leetcode】486. Predict the Winner
  • 原文地址:https://www.cnblogs.com/bwxx/p/13179401.html
Copyright © 2011-2022 走看看