java编程用catch(Exception e)捕获异常,在catch中用instanceof对不同的异常分别处理

 我来答
198901245631
2015-07-01 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1705万
展开全部
实现原理:实际上就是先不分具体的异常,直接捕获所有异常的父类Exception,之后在进行实例化异常判断,进行结果输出。举例:
try{
//填写需要捕获异常信息的代码
} catch(Exception e) {//捕获异常信息
if(e instanceof NumberFormatException) {//判断是不是数据转换异常
System.out.println("NumberFormatException");//输出结果
}
if(e instanceof NullPointerException) {//判断是不是空指针异常
System.out.println("NullPointerException");//输出结果
}
}
备注:这个instanceof 实例化可以有效的判断类型是否匹配,而不抛出异常,增加了代码的可复写性(也就是根据异常自定义输出信息)。
jxkiqfo
2011-05-24 · TA获得超过596个赞
知道答主
回答量:607
采纳率:0%
帮助的人:0
展开全部
throw出去的异常,由调用方处理,也就是更外面的catch处理

如果都没有代码处理,则整个程序异常,并运行结束
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
唔製
2011-05-17 · TA获得超过1146个赞
知道小有建树答主
回答量:456
采纳率:0%
帮助的人:575万
展开全部
不需要把,多几个catch就行了
try{
//TODO 可能抛异常的代码
} catch(NumberFormateException nfe) {
//TODO 处理异常
} catch(Exception e) {
//TODO 处理异常
}
追问
如果用instanceof怎么实现呢??
追答
为什么非要instanceof呢,这不是多此一举吗?

public static void main(String[] args) {
try {
a();
b();
} catch(Exception e) {
if(e instanceof NullPointerException) {
System.out.println("NullPointerException");
}
if(e instanceof NumberFormatException) {
System.out.println("NumberFormatException");
}
}
}

public static void a() throws NullPointerException {
int i = 1;
if(i == 1) {
throw new NullPointerException();
}
}

public static void b() throws NumberFormatException {
int i = 1;
if(i == 1) {
throw new NumberFormatException();
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天天U96v
2011-05-19 · TA获得超过304个赞
知道小有建树答主
回答量:205
采纳率:0%
帮助的人:159万
展开全部
以下两种异常处理的方式都是可以的。 第一种要求首先判断子类型的异常。
在第一种中NumberFormateException 是Exception的子类。
个人认为第一种异常处理的方式是比较好的。 也是比较常见的。
不过也有人用第二种的方式, 我一同事就特喜欢第二种的方式。
看个人理解了。 呵呵。 应该差不多, 没什么大的区别。
try{
//TODO 可能抛异常的代码
} catch(NumberFormateException nfe) {
//TODO 处理异常
} catch(Exception e) {
//TODO 处理异常
}

catch(Exception e) {
if(e instanceof NullPointerException) {
System.out.println("NullPointerException");
}
if(e instanceof NumberFormatException) {
System.out.println("NumberFormatException");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式