Java基础之异常

本文介绍了Java中的异常处理机制,包括异常的分类(检查性异常、运行时异常和错误),异常处理的基本语法(try-catch-finally)以及如何通过throw和throws进行异常抛出。此外,还提到了自定义异常的概念,帮助开发者提升程序的健壮性。
摘要由CSDN通过智能技术生成

Java基础之异常


什么是异常

异常指的是在程序开发或过程中,由软件编写错误或使用过程中以及运行环境出现的问题,导致程序无法正常返回预期的结果以及程序崩溃。


异常的分类

  • 检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
  • 运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
  • 错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的

在这里插入图片描述


异常处理语法

异常示例:

    public static void main(String[] args) {
        int a = 1;
        int b = 0;
        int c = a/b;
    }

未处理的异常显示信息如下:

  Exception in thread "main" java.lang.ArithmeticException: / by zero

异常捕获:

  • try{}:在这个大括号中产生的错误都将会被捕获,单出现错误时执行catch区域返回错误类型。
  • catch{}:当try{}区域捕获到异常的时候,就会执行catch{}中的代码块。通常情况下该区域会执行一些补救措施,以提高程序的健壮性。
  • finally{}:该区域的代码,最终都会执行不管程序捕获到的异常是否可以进行处理,都会执行该区域的代码。该区域一般会写一些必须执行的代码,如“file.clost”关闭流等。

异常捕获主要用户在程序中匹配多种错误信息,并根据不同的信息进行处理,可以多次使用catch{} 类似if(){}else if{},不过需要注意的是在多次使用catch时,存在上下级关系,级别越高就要越靠后因为最终只会匹配到一个catch。

  public static void main(String[] args) {
       int a = 1;
       int b = 0;

        try{
            int c = a/b;
        }catch(ArithmeticException e){
            System.out.println("公式参数出现问题");
        }finally {
            System.out.println("提示0不可以作为除数!!!");
        }
    }

回显信息:

公式参数出现问题
提示0不可以作为除数!!!

异常抛出

  • throw new /throws :我们可以看到当当前代码块中并未出现,算数异常的代码,但回显信息中,仍然抛出了“ArithmeticException”类型的异常。如果无法主动抛出预定的异常,可以通过throws抛出更高级别的异常。

throw new 抛出主要使用在方法中,如方法无法处理某个实参时,可以直接抛出该类型的错误

    public static void main(String[] args) throws Exception{
        int a = 1;
        int b = 0;
        if (b == 0) {
            throw new ArithmeticException();
        }
    }

回显信息:

Exception in thread "main" java.lang.ArithmeticException

自定义异常

自定义异常一般应用在,自己开发的算法中,定义一些除Java定义外的异常。

    public static void main(String[] args) throws Eyexception {
        int a = 1;
        int b = 0;
        if (b == 0) {
            throw new Eyexception();
        }
    }
}
//定义的异常
public class Eyexception  extends Exception{
    public Eyexception(){
        System.out.println("错误参数");
    }
}

回显信息:

错误参数
Exception in thread "main" com.demo.Eyexception

在IDEA中可以使用Ctrl+Alt+T,快捷健生成代码try{}catch{}finally{}。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值