• 异常处理(try,catch,finally)


    Java的异常处理是通过5个关键字来实现的:try、catch、 finally、throw、throws
    在这里插入图片描述

    	try{
    		//可能会发生异常的代码
    	}catch(//异常类型 引用名){
    		//异常处理代码
    	}finally{
    		//必须执行代码
    	}
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    try:用来检测不安全的代码块(发现异常)

    try块中任何一条语句发生了异常,下面的代码将不会被执行,程序将跳转到异常处理代码块中,即catch块。因此,不要随意将不相关的代码放到try块中,因为随时可能会中断执行。

    catch:捕获异常,保证程序可以运行下去

    catch语句必须紧跟着try语句之后,称为捕获异常,也就是异常处理函数,一个try后面可以写多个catch,分别捕获不同类型的异常,要从子类往父类的顺序写,否则有编译错误。

    finally:该内容总是会执行的,只能有一个finally语句

    	finally {
                System.out.println("总能执行,不受异常干扰");
                //无论是否异常,finally包含的代码总能执行,且只能有一个finally语句
            }
    
    • 1
    • 2
    • 3
    • 4

    try catch finally 多种组合方式

    try catch

    	try {
                int i=100/0;
                System.out.println(i);
            }catch(Exception e){
                System.out.println(1);
                throw new RuntimeException();
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    try catch catch

         try{
                int i =10/0;
            }atch (ArithmeticException m) {
                m.printStackTrace();
            } catch (Exception n) {
                n.printStackTrace();
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    try finally

    	try {
                int a = 10;
                int b = 0;
                int c = a/b;
                System.out.println(c);
            } finally {
                System.out.println("总能执行,不受异常干扰");
                //无论是否异常,finally包含的代码总能执行,且只能有一个finally语句
            }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    throw 和 throws

    throw :用于显式抛出异常,抛出的时候是抛出的是一个异常类的实例化对象。

     if(fileName==null){
                throw new NullPointerException("文件名为null了");
            }
    
    • 1
    • 2
    • 3

    throw用于方法体中,用来抛出一个实际的异常对象,使用throw后,要么使用try catch捕获异常,要么使用throws声明异常。

    throws:定义一个方法的时候可以使用throws关键字声明,表示此方法不处理异常,而交给方法调用处进行处理。

    public static void test() throws Exception, ArithmeticException{
    
    	}
    
    • 1
    • 2
    • 3

    throws用于方法声明处,用来声明该方法可能发生的异常类型,可以是多个异常类型,用来强制调用该方法时处理这些异常。
    抽象方法也可以使用throws

    运行时异常与编译期异常

    运行时异常

    程序运行时抛除的异常,所有 RuntimeException 的子类都是运行期异常。

    • 数学异常
    • 空指针异常
    • 数组下标越界
    • ……
      运行时异常可以顺利的通过编译,只有在运行时才会出现异常

    编译期异常(Checked Exception)

    除去运行期的异常都是编译期异常,也称为检测异常。

    • IOException
    • SQLException
    • ……

    编译期异常指的是我们在编译期就要去处理的,否则连编译都无法通过

  • 相关阅读:
    spring cloud 微服务
    ExcelPatternTool: Excel表格-数据库互导工具
    Windows共享文件夹
    mysql毫秒日期相互转换
    Linux防火墙入门:学会使用firewalld和iptables
    身临其境之谁是猎人
    按键精灵中的UI界面操作
    探索未来:2023云计算发展趋势
    uni-app:js修改元素样式(宽度、外边距)
    C语言 | Leetcode C语言题解之第230题二叉搜索树中第K小的元素
  • 原文地址:https://blog.csdn.net/qq_46381044/article/details/126224319