Java 基础学习之异常 四(自定义异常类、断言)

1 自定义异常类

   在 Java 中已经提供了大量的异常类,但是这些异常类有时候也很难满足开发者的要求。例如:现在如果设置的年龄超过了 300 岁,那么将产生一个 AgeException, 然而这样的异常 Java 本身不会提供,所以此时用户可以根据自己的需要定义自己的异常类,定义异常类只需要继承 Exception 类(强制性处理)或者是 RuntimeException 类(选择性处理)即可。

实例 1 代码:
package self.learn.exception;

public class MyException extends Exception { // 自定义异常类,继承 Exception
	public MyException(String msg) {         // 构造方法接收异常信息
		super(msg);                          // 调用父类中的构造方法
	}
}
package self.learn.exception;

public class DefaultException {
	public static void main(String[] args) {
		try {
			throw new MyException("自定义异常。");   // 抛出异常
		} catch (Exception e) {                   // 异常处理
			System.out.println(e);
		}
	}
}
运行结果截图:

在这里插入图片描述

2 断言(assert)

   在 JDK1.4 之后,Java 中增加了断言的功能。断言就是肯定某一个结果返回的值是正确的,如果最终此结果的返回值是错误,则通过断言检查肯定会提示错误信息。断言的定义格式如下:

assert boolean 表达式;
assert boolean 表达式: 详细信息

   如果上面的 boolean 表达式的结果为 true,则什么错误信息都不会提示,如果为 false,则会提示错误信息;如果没有声明详细的信息描述,则系统会使用默认的错误信息提示方式。

实例 2 代码:
package self.learn.exception;

public class AssertDemo {

	public static void main(String[] args) {
		int x[] = {1,2,3};
		assert x.length == 0;     // 此处断言数组长度为0,可定是错误的
	}
}

断言编译格式:(-enableassertions —>可以简写为 “-ea”)

javac AssertDemo.java
java -ea AssertDemo

程序出现错误如下:

运行结果截图:

在这里插入图片描述
   上面出现的是断言错误,因为数组 x 的长度不可能是 0,但此时的信息是系统默认的错误信息,如果想要显示自己的错误信息,可以使用另外一种断言声明格式。

实例 3 代码:
package self.learn.exception;

public class AssertDemo {

	public static void main(String[] args) {
		int x[] = {1,2,3};
		assert x.length == 0:"数组长度不为 0";    // 此处断言数组长度为0,可定是错误的
	}
}
运行结果截图:

在这里插入图片描述

断言的使用:
(1)虽然断言返回的是 boolean 值,但是其并不能作为条件判断语句出现。
(2)断言虽然有检查运行结果的功能,但是一般开发中并不提倡使用断言。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值