美文网首页
三、Java中级--3、异常处理机制

三、Java中级--3、异常处理机制

作者: cybeyond | 来源:发表于2018-04-26 10:58 被阅读0次

1、什么是异常

程序运行出现的,导致程序无法正常运行的错误,叫做异常

  • 异常的父类Throwable(使用ctrl+t,显示继承关系),主要包含两个子类:
    • Error:一般是JVM即Java虚拟机运行中出现了问题,不用处理,也没法处理。
    • Exception 分为两种,一种是RuntimeException,这种错误可以处理,也可以不处理,可以使用try catch,也可以不用try catch;另一种是非RuntimeException,必须使用try catch

2、常见RuntimeException

  • NullPointerException 空指针异常
  • IndexOutofBoundException 数组下标越界异常
  • NumberFormatException 数据格式异常
  • IllegalArgumentException 非法参数异常
  • ArithmeticException 算术异常
  • IllegalStateException 非法语句异常

3、常见非RuntimeException

  • ClassNotFoundException 类找不到异常

4、抛出异常与处理异常

结构

Math类:

package javastudy;

public class Math {
    public static int add(String a,String b){
        int sum=Integer.parseInt(a);
        sum+=Integer.parseInt(b);
        return sum;
    }
}

Testit类

package javastudy;
public class Testit {
    public static void main(String[] args) {
        System.out.println(Math.add("100","101"));
            }
}
执行结果

若此时将字符串改为“100a”,此时转成整数时会报错

报错信息

其报错原因是因为主函数在调用Math时,在转换时出错,这时在Math类中使用try catch,这样避免在调用的函数时 传出错误

package javastudy;

public class Math {
    public static int add(String a,String b){
        try {
            int sum=Integer.parseInt(a);
            sum+=Integer.parseInt(b);
            return sum;
        } catch (Exception e) {
            // TODO: handle exception
            return -1;
        }
    }
}

此时,在执行上述的System,会输出-1


执行结果

在发生错误时,不处理,逐层的往外面扔。下面示例中,由于没有aaa的类,因此会报错

public class Math {
    public static void test() throws ClassNotFoundException{  //此函数可能会发生ClassNotFound的错误
        Class.forName("aaa");
    }
}

在testit类中

public class Testit {

    public static void main(String[] args) throws ClassNotFoundException {
            Math.test();
    }
}

由于是Math函数的错误,但是却扔出错误,然后testit主函数又扔出,由于是主函数,所以只能是扔给虚拟机


执行结果

5、在try catch中添加finally

public class Math {
    public static int add(String a,String b){
        try {
            int sum=Integer.parseInt(a);
            sum+=Integer.parseInt(b);
            return sum;
        } catch (Exception e) {
            // TODO: handle exception
            return -1;
        }
        finally {
            System.out.println("finally"); //不管是否出错,finally都会被执行
        }
执行结果
执行结果

相关文章

  • 三、Java中级--3、异常处理机制

    1、什么是异常 程序运行出现的,导致程序无法正常运行的错误,叫做异常 异常的父类Throwable(使用ctrl+...

  • Java异常简介及其架构

    Java异常简介 Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理...

  • 异常处理

    JAVA严格的异常处理机制和类型检查机制 异常处理手贱异常非手贱异常 异常链处理 异常是在程序出错的时候能知道程序...

  • java 异常

    Java中异常处理是识别及响应错误的机制。有效地异常处理能使程序更加健壮。异常处理是非功能性需求。 异常的处理机制...

  • 第6章 Dart基础语法 -- 异常处理

    1. 异常的定义 Dart的异常处理机制参考了Java语言的异常处理机制。与Java语言不同的是,Dart中不存在...

  • 异常处理 ?处理(try-catch) :甩锅(throws)_

    本章概要 本章主要和大家一起学习java异常类的处理机制,深入学习java异常类。掌握异常处理机制,及背后的逻辑。...

  • Java SE 5

    Java SE 1.Java异常处理机制 Java异常结构中定义有Throwable类,Exception和Err...

  • Java中的异常处理

    一、概述 Java异常是Java提供的一种识别和响应错误的一致性机制。 Java异常机制可以使得异常处理代码和正常...

  • JAVA异常

    一、简介 Java异常是Java提供的一种识别及响应错误的一致性机制。Java异常机制可以使程序中异常处理代码和正...

  • Exception和Error有什么区别

    简述Java异常机制的优点 Java语言在设计之初就提供了相对完善的异常处理机制,这也是Java的优势之一;因为这...

网友评论

      本文标题:三、Java中级--3、异常处理机制

      本文链接:https://www.haomeiwen.com/subject/ikcylftx.html