Java笔记——异常

本文详细介绍了Java中的异常处理,包括LBYL与EAFP编程风格的对比,异常的基本用法如try-catch-finally,catch匹配异常类型,以及多个catch处理。此外,还讨论了finally块的执行时机,throw与throws的区别,Java异常体系,受查异常与非受查异常,以及如何自定义异常类。通过实例展示了异常处理在实际编程中的应用。
摘要由CSDN通过智能技术生成

异常

  1. 初识

防御式编程:
LBYL:“ Look Before You Leap ”,在操作之前就做好检查;

登录伪代码LBYL示例:

boolean ret = false;
ret = 输入用户名();
if (!ret){
   
	处理用户名登录错误;
	return ;
}
ret = 输入密码();
if (!ret){
   
	处理密码登录错误;
	return ;
}
ret = 输入验证码();
if (!ret){
   
	处理验证码登录错误;
	return ;
}
......

EAFP:“ It’s Easier to Ask Forgiveness than Permission ”,先操作,遇到问题再进行处理。

登录伪代码EAFP示例:

try{
   
	输入用户名();
	输入密码();
	输入验证码();
	......
}catch (用户名输入异常){
   
	处理用户名输入异常;
}catch (密码输入异常){
   
	处理密码输入异常;
}catch (验证码输入异常){
   
	处理验证码输入异常;
}
......

由以上的示例我们可以看出LBYL和EAFP两种风格代码的特点,以及对比可以看出EAFP风格更简约以及容易理解。

  1. 基本用法
try{
   
	//有可能出现异常的语句
}catch( 异常类型 异常对象){
   
	//  ...
}finally{
   
	// 异常出口
}

①处理异常和不处理异常的区别

假如对如下代码可能出现异常的情况我们不进行处理:

public class test {
   
    public static void main(String[] args) {
   
        int a = 10;
        int b = 0;
        System.out.println( a / b);
        System.out.println(a);
        System.out.println(b);
    }
}

代码在编译时并没有报错,但我们知道 上述代码中, b 是不能等于 0 的,因此,在运行时会出现算术异常提示:
在这里插入图片描述

对于代码中打印 a 和 b 的值并没有继续执行,即一旦出现异常,程序就终止了;

现在我们修改上述代码,用try catch 执行:

public class test {
   
    public static void main(String[] args) {
   
        int a = 10;
        int b = 0;
        try {
   
            System.out.println( a / b);
        }catch (ArithmeticException e){
   
            e.printStackTrace<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值