例:编写一段程序去实现将100次的栈弹出写入到一个文件记录。这有两种异常:栈为空和写出错。一种源代码如下:InputStream is;Stacks;for (i=0;i<100;i++){try{n=s.pop( );}catch(StackException s){//栈为空}try{out.writeInt(n);}catch(IOException e){//写文件出错}}——————————————————————————————书上说:这个代码中,一旦栈弹出为空,文件写的错误就会漏了,程序不会再执行后面的catch 。为什么呢?为什么不执行后面的catch ?
是不是一个方法中只能执行一个catch块?
是不是一个方法中只能执行一个catch块?
2,一个try块可以有多个catch子句。
3,满足你需求的伪代码:
... ...
try{
n=s.pop( );
out.writeInt(n);
}catch(StackException s){
//栈为空
try {
out.writeInt(n);
}catch(IOException e){
//写文件出错
}
}catch(IOException e){
//写文件出错
}
{
public static void main(String[] args)
{
try
{
int a=8/0;
}
catch(Exception e)
{
System.out.println("The first Exception!");
}
try
{
int b=9/0;
}
catch(Exception e)
{
System.out.println("The second Exception!");
}
}}
结果是
System.out.println("The first Exception!");
System.out.println("The second Exception!");