1.异常类之间的关系图
2.异常转译:指的就是吧捕获到的原始异常,将其转换为一个新的不同类型的异常,然后再抛出该新异常的过程。
比如:public void uploadImageFile(String imagePath) {
try {/上传图片文件}
catch(IOException e) {
//吧原始异常信息记录到日记中(便于排错)
throw new 异常构造方法();
}
}
3.异常链:就是把原始的异常的类包装成新的异常类
比如:自定义了一个新的异常类 public class UploadExceptio extends BaseException {
public UploadExceptio (Throwable tt ){
}
}
.......
try {/上传图片文件}
catch(IOException e) {
//吧原始异常信息记录到日记中(便于排错)
throw new UploadExceptio (e);s
}
4.多样化异常:(java中每次只能抛出一个异常对象,所以这种异常需要自定义。)
比如:表单验证--------
public class BaseException extends Exception {
protected Throwable cause = null;
private List<Throwable> exceptions = new ArrayList<Throwable>();
public BaseException(String msg, Throwable cause) {
super(msg);
this.cause = cause;
}
public List getException() {
return exceptions;
}
public void addException(BaseException ex) {
exceptions.add(ex);
}
public void printStackTrace(PrintWriter writer) {
super.printStackTrace(writer);
if(getCause() != null) {
getCause().printStackTrace(writer);
}
writer.flush();
}
public static void main(String [] args) {
BaseException be = new BaseException();
try {
checkField1();
}catch(Field1Exception e) {
be.addException(e);
}
try {
checkField2();
}catch(Field2Exception e) {
be.addException(e);
}
if(be.getException().size()>0) throw be;
}
}