JAVA异常笔记
理解使用try-catch还是使用throws
throws
trows + 异常类型: 写在方法的声明处,指明了此方法执行时,可能会抛出的异常类型。
一但方法体执行时,出现异常,仍会在异常代码处生成一个异常类对象,此对面满足throws后异常类型时,就会被抛出,异常代码后续代码将不会被执行!(其实并没有真正的解决掉异常代码)
try-catch-finally
真正的会将异常解决掉
开发中使用try-catch-finally还是throws
- 如果父类被重写的方法没有throws处理异常,那么子类重写此父类方法的时候也不可以使用thorws进行处理
- throws处理的异常类型不能高于调用它的对象处理的异常类型。
- 如果执行某个方法a,此方法a又有关系的调用了其他方法,那么当a出现异常的时候最后使用throws抛出异常!而执行方法a可以考虑try-catch-finally进行彻底处理异常
手动抛出异常throw, 以及自定义的异常类
- 自定义的异常类,我这里通过继承异常类以及在此类的构造方法中声明异常的提示
public class myexception extends RuntimeException {
static final long serialVersionUID = -745154244524752L;
public myexception() {}
public myexception(String mes) {
// 提示语句
super(mes);
}
}
- 通过 throw手动抛出异常,在处理异常处位置通过 e.getMessage() 获取异常提示语句
package zq.com.throwcs;
import jzq.com.myexception.myexception;
public class throwcx {
public static void main(String[] args) {
Stu s = new Stu();
try {
s.show(-1200);
} catch (RuntimeException e) {
System.out.println(e.getMessage());
}
}
}
class Stu {
public void show(int e) {
if(e>0) {
System.out.println(e);
}else {
// 手动new 一个异常对象
throw new myexception("您输入了负数");
}
}
}