Contents
16.5. 自定义异常类¶
有些公司为了提高代码的可重用性,自己开发了一些Java类库或框架,其中少不了自己编写了一些异 常类。实现自定义异常类需要继承Exception类或其子类,如果自定义运行时异常类需继承 RuntimeException类或其子类
MyException.java
package com.a51work.cn;
public class MyException extends Exception {
public MyException() {
}
public MyException(String message) {
super(message);
}
}
YiChang13.java
package com.a51work.cn;
public class YiChang13 {
public static void main(String[] args) {
// 创建一个自定义异常对象
MyException me = new MyException("自定义异常");
// 获取自定义异常信息
System.out.println("自定义异常对象携带的错误信息为:"+ me.getMessage());
System.out.println("自定义异常的字符串表示为:" + me.toString());
}
}
/*
自定义异常对象携带的错误信息为:自定义异常
自定义异常的字符串表示为:com.a51work.cn.MyException: 自定义异常
* */
YiChang14.java
package com.a51work.cn;
import java.util.Scanner;
public class YiChang14 {
// 定义一个可能发生自定义异常的方法
public String deiFen(int fen) throws MyException {
if (fen >= 0 && fen <= 100) {
return "正常";
} else {
// 当分数不在0到100的范围内时排除自定义异常
throw new MyException(">>>>错误提示,不在0~100的要求范围内<<<<");
}
}
public static void main(String[] args) {
YiChang14 hu = new YiChang14();
while (true) {
System.out.println("请输入一个整数:");
// 捕获输入
try {
Scanner input = new Scanner(System.in);
int num = input.nextInt();
try {
String s = hu.deiFen(num);
System.out.println(s);
break;
} catch (MyException e) {
System.out.println("异常信息为:" + num + "【" + e.getMessage() + "】");
}
} catch (Exception e) {
System.out.println("您输入的不是整数.");
}
}
}
}