class FuShuException extends Exception
{
FuShuException(String msg)
{
super(msg);
}
}
class Demo5
{
int div(int a,int b)throws FuShuException
{
if (b<0)
throw new FuShuException("出现除数为负数了");
return a/b;
}
}
public class ExceptionDemo5
{
public static void main(String[] args) throws Exception
{
Demo5 d = new Demo5();
try
{
int x = d.div(4,-1);
}
catch(FuShuException e)
{
System.out.println(e.toString());
return; //System.exit(0):系统退出,jvm结束
}
finally
{
System.out.println("finally");//finally中存放一定会被存放的代码
}
System.out.println("over");
}
}
finally中定义的通常是 关闭资源代码,因为资源必须释放;一般情况他的代码都会被执行
finally只有一种情况不会执行,当执行到System.exit(0);
如上代码,如果将return;换成System.exit(0);代码中的finally语句就不会执行,因为系统退出,jvm结束了 |