1.将可能引发异常的代码节放在 Try 块中,而将处理异常的代码放在 Catch 块中。
2.异常发生时,执行将终止,并且控制交给最近的异常处理程序。这通常意味着不执行希望总是调用的代码行。有些资源清理(如关闭文件)必须总是执行,即使有异常发生。为实现这一点,可以使用 Finally 块。Finally 块总是执行,不论是否有异常发生。
3.throws是方法可能抛出异常的声明。
throw则是明确了这个地方要抛出这个异常。
public class DangerException extends Exception {
final String message="超重";
public String warnMess(){
return message;
}
}
public class CargoBoat {
int realContent;
int maxContent;
public void setMaxContent(int c){
maxContent=c;
}
public void loading(int m) throws DangerException{
realContent+=m;
if(realContent>maxContent){
realContent-=m;
throw new DangerException();
}
System.out.println("目前装载了"+realContent+"吨货物");
}
}
public class TestThrow {
public static void main(String[] args) {
CargoBoat ship=new CargoBoat();
ship.setMaxContent(1000);
int m=600;
try{
ship.loading(m);
m=100;
ship.loading(m);
m=267;
ship.loading(m);
m=555;
ship.loading(m);
}
catch(DangerException e){
System.out.println(e.warnMess());
System.out.println("无法再装载的重量是"+m+"吨的集装箱");
}
finally{
System.out.println("货船将正点起航");
}
}
}