前提:
当在程序测试时,如果你需要定义一个自己的异常,而非现在已经存在的异常,这个时候你需要用到throws和throw,try-catch只是一个简单的捕获异常的过程。
代码如下:
package org.axc.com.Action;
import java.lang.Exception;
public class TestException {
public static void count(int x) throws MyException{
if(x>0) {
throw new MyException("发生了自定义的异常");
}
}
public static void main(String[] args) {
// 自己定义的异常如下
try {
count(3);
} catch (MyException e) {
e.printStackTrace();
}
// 通过try-catch正常触发的异常
try {
int num=1/0;
}catch(Exception e) {
System.out.println(e);
}
}
}
class MyException extends Exception { // 创建自定义异常类
public MyException(String ErrorMessagr) { // 父类方法
super(ErrorMessagr);
}
}
其实throw的使用很简单
首先你必须要定义一个异常类,因为你要自己抛出一个以前没有见过的异常
其次你要写你定义的这个异常类的构造函数(可以调用父类的),因为要抛出我们自己写的异常信息
再次需要在想要抛出异常的方法后写throws XXX,并在方法中写出想要抛出异常的信息(throw new XXX("自定义异常信息"))
最后,在需要定义的调用时用try{}catch(XXX e){}
Exception原码:
链接:https://blog.csdn.net/hackersuye/article/details/84193536
感觉看原码,还是有一些收获的。