自定义异常
public class Test1 {
public static void main(String[] arrs){
int a=6;
int b=1;
try{
int c=divide(a,b);
System.out.println(c);
System.out.println("!!!"); //出现异常,此处不执行
}catch(Exception1 e){ //多个catch,只执行一个
System.out.println(e.getMessage());
}
finally{
System.out.println("Over!!");
}
System.out.println("Over"); //出现异常,此处也执行,除非catch中有return
}
static int divide(int x,int y) throws Exception1{ //出现异常,不处理,会终止;不出现异常,可通过
if(y==1) throw new Exception1("除数==1");
return x/y;
}
}
class Exception1 extends Exception{
public Exception1(){
super();
}
public Exception1(String s){
super(s);
}
}
运行结果:
除数==1
Over!!
try-catch-throws
<span style="font-size:10px;">public class Test2 {
public static void main(String[] args){
try{
int result=divide(4,0);
System.out.println(result);
}catch(Exception e){
e.printStackTrace();
}
System.out.println("continue!"); //出现异常也执行
}
public static int divide(int x,int y)throws Exception{
int result=x/y;
return result;
}
}</span>
结果:
java.lang.ArithmeticException: / by zero
at chapter05多线程.Test2.divide(Test2.java:15)
at chapter05多线程.Test2.main(Test2.java:6)
continue!