| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 440 人关注过本帖
标题:[求助]再次求助
只看楼主 加入收藏
Satyr
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-7
收藏
 问题点数:0 回复次数:8 
[求助]再次求助

import java.io.*;
class MyException extends Exception
{
MyException()
{
super();
}
MyException(String s)
{
super(s);
System.out.println("the Exception with ABCD");
}
}

public class exception2
{
public static void main(String args[])throws IOException
{
while(true)
{
try
{
fn();
}
catch(RuntimeException e)
{
try
{
throw e.getCause();//这个方法不对么
}
catch(IOException s)
{
System.out.println("please again");
}
catch(MyException m)
{
break;
}

}
}
}
static void fn()
{
try
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("putout u String");
String temp=br.readLine();
if(temp.equals("ABCD")==false)
{
throw new IOException();
}
else if(temp.equals("ABCD")==true)
{
throw new MyException("ABCD");
}
}catch(Exception e)//把他包装成runtime的异常
{
throw new RuntimeException(e);
}

}
}

怎么解决,让异常正确识别其类型????

搜索更多相关主题的帖子: super void public import 
2007-04-08 13:36
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
用instanceof

可惜不是你,陪我到最后
2007-04-08 13:50
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
以下是引用Satyr在2007-4-8 13:36:12的发言:

import java.io.*;
class MyException extends Exception
{
MyException()
{
super();
}
MyException(String s)
{
super(s);
System.out.println("the Exception with ABCD");
}
}

public class exception2
{
public static void main(String args[])throws IOException
{
while(true)
{
try
{
fn();
}
catch(RuntimeException e)
{
try
{
throw e.getCause();//因为getCause返回的是个Throwable类型,所以必须对Throwable进行捕获
}
catch(IOException s)
{
System.out.println("please again");
}
catch(MyException m)
{
break;
}
catch(Throwable t) //加上这句
{
}

}
}
}
static void fn()
{
try
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
System.out.println("putout u String");
String temp=br.readLine();
if(temp.equals("ABCD")==false)
{
throw new IOException();
}
else if(temp.equals("ABCD")==true)
{
throw new MyException("ABCD");
}
}catch(Exception e)//把他包装成runtime的异常
{
throw new RuntimeException(e);
}

}
}

怎么解决,让异常正确识别其类型????


My BlogClick Me
2007-04-08 13:57
Satyr
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-7
收藏
得分:0 
try
{
if(e instanceof IOException)
throw new IOException();//这个方法不对么
else throw new MyException();
}
不行啊

C++的博大精深让我叹服
2007-04-08 22:55
Satyr
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-7
收藏
得分:0 
2楼谢谢了

C++的博大精深让我叹服
2007-04-08 22:58
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 
呵呵,我的方法不管用么?

My BlogClick Me
2007-04-08 23:01
Satyr
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-4-7
收藏
得分:0 
说错了
3楼.............

C++的博大精深让我叹服
2007-04-08 23:04
Eastsun
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:802
专家分:0
注 册:2006-12-14
收藏
得分:0 

汗,还以为我的方法不行呢


My BlogClick Me
2007-04-08 23:05
w5644266
Rank: 1
等 级:新手上路
帖 子:101
专家分:0
注 册:2007-4-4
收藏
得分:0 
我们刚好上到这儿
2007-04-09 17:20
快速回复:[求助]再次求助
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038114 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved