Java基础知识回顾之异常

摘要

异常是指程序不正常,有错误的代码或者潜在的风险。在编写 Java 应用程序的过程中,发生异常是再所难免的。异常对程序员来说是一件非常头疼的事情。但是 Java 可以自动检测异常,并能够捕获异常,可以编写专门的程序来处理异常。

认识异常

在编程时应该尽可能避免错误和异常的产生,对于不可避免或不可预测的情况,Java 使用异常对象来表示。Java 异常的来源有两种:

  1. Java 在运行时,环境自动抛出系统生成异常(有些是咱们程序员写的bug)。
  2. 程序员自己抛出的异常。一般是在处理业务逻辑的时候,不满足条件,就使用异常反馈出提示信息。

异常的处理

Java中异常处理流程:
异常处理流程

通过异常的处理可以让异常程序具有更好的容错性并增加健壮性。在异常处理时有三个关键字:try、catch、finally。在 finally 块中的代码,是不管前面报错怎么样,一定会执行。

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

代码示例:

public class TestDemo {
	public static void main(String[] args) {
		System.out.println("1.开始除法计算....");
		try {
			int x = Integer.parseInt(args[0]);
			int y = Integer.parseInt(args[1]);
			System.out.println("2.除法计算:" + (x / y));
		} catch (ArrayIndexOutOfBoundsException e) {
			e.printStackTrace();
		} catch (NumberFormatException e) {
			e.printStackTrace();
		} catch (ArithmeticException e) {
			e.printStackTrace();
		} finally {
			System.out.println("不管是否异常,我都输出!");
		}
		System.out.println("3.计算结束....");
	}
}

控制台输出:

1.开始除法计算....
java.lang.ArrayIndexOutOfBoundsException: 0
不管是否异常,我都输出!
	at TestDemo.main(TestDemo.java:7)
3.计算结束....

访问异常信息

当程序运行时决定调用某个 catch 块时,可以在 catch 块中获取到异常的相关信息。在 Java 中提供了4个常用的方法。

  • getMessage():返回该异常的详细描述字符串。
  • printStackTrace():将该异常的跟踪栈信息输。
  • printStackTrace(PrintStream s):将该异常信息输出到指定的输出流。
  • getStackTrace():返回异常的跟踪流程信息。
public class TestDemo {
	public static void main(String[] args) {
		try {
			int a = 1/0;
		} catch (Exception e) {
			e.printStackTrace();
			
			System.out.println("【"+ e.getMessage() +"】");
		}
	}
}

控制台输出:

java.lang.ArithmeticException: / by zero
	at com.wq.study.object.TestDemo.main(TestDemo.java:6)/ by zero】

Error 与 Exception 的区别

Error:错误。指的是 JVM 错误,即:此时的程序还没有执行,程序还没有执行,用户是无法处理的。
Exception:异常。指的是程序运行中产生的异常,用户可以处理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wayfreem

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值