Java 学习笔记 异常处理

自定义异常

大型项目时需要自定义异常,需要保持合理的 异常继承体系。
自定义一个 BaseException 作为根异常,然后派生其他异常。
根异常从一个合适的Exception派生,建议RuntimeException派生

public class BaseException extends RuntimeException {
}

继而派生其他异常

public class UserNotFoundException extends BaseException {
}

public class LoginFailedException extends BaseException {
}

...

自定义的BaseException 应该提供多个构造方法,都是照搬RuntimeException的方法

public class BaseException extends RuntimeException {
    public BaseException() {
        super();
    }

    public BaseException(String message, Throwable cause) {
        super(message, cause);
    }

    public BaseException(String message) {
        super(message);
    }

    public BaseException(Throwable cause) {
        super(cause);
    }
}

在这里插入图片描述

在这里插入图片描述
个人感觉,就是自己定义个名字,然后可以调用,返回一堆东西,就是和原生的原理是一样的,只不过名字和返回的内容可以自己写,有点重载那味儿。(可能理解的有偏差,欢迎评论区指正。)

NullPointerException

逻辑错误,早发现,早处理。
初始化时用 “”避免用null或者默认值,字符串默认为null,容易引发。

java14新增功能,给JVM加参数启动
我并不知道这东西在哪加,有无大佬指点,(狗头)

java -XX:+ShowCodeDetailsInExceptionMessages Main.java

使用断言

assert
例子如下

public static void main(String[] args) {
    double x = Math.abs(-123.45);
    assert x >= 0;
    System.out.println(x);
}

x>=0则ture 反之为false 抛出异常 AssertionError

assert x >= 0 : "x must >= 0";

断言失败附上后边的信息

JVM默认关闭断言,遇到assert忽略,需要在命令行执行
加上 -ea

$ java -ea Main.java

使用JDK Logging

print debug太麻烦,用日志(Logging)取代

使用Commons Logging

第三方库,由Apache创建的日志模块。
第一步,通过LogFactory获取Log类的实例;
第二步,使用Log实例的方法打日志。

需要下载使用点这里,下载
在这里插入图片描述

解压之后,把jar和你的java原码放在一个目录下,需要在命令行下执行

javac -cp commons-logging-1.2.jar Main.java
java -cp .;commons-logging-1.2.jar Main

使用Log4j

待续。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值