黑马程序员技术交流社区
标题:
关于异常类的小问题
[打印本页]
作者:
孙新强
时间:
2012-6-21 17:20
标题:
关于异常类的小问题
public class ti2 {
public static void main(String[] args) {
fun(0);
fun(1);
fun(2);
fun(3);
}
static void fun(int i)
{
System.out.println("调用方法fun("+i+")");
try
{if( i==0)
{System.out.println("没有异常");}
else if(i==1)
{int a=0;int b=10;b/=a;}
else if(i==2)
{int m[]=new int[5];
m[6]=100;
}
else if(i==3)
{String str="56k9";
int n=Integer.parseInt(str);}
}
catch (Exception e)
{System.out.println("捕捉异常:"+e);
}
finally
{System.out.println("处理完毕!");}
}
}
问题 catch语句 为什么把System.out.println("捕捉异常"+e);改为:System.out.println("捕捉异常"+e.Message()); 为什么没影响 那么,Message()是个什么样的方法?? 麻烦大家解决一下 谢谢了
作者:
sbeeqnui1987
时间:
2012-6-21 18:35
e是异常对象,你在System.out.println("捕捉异常"+e)是就是把异常对象的结果输出来了,也就是说你等于把异常信息输出,而后面的句子System.out.println("捕捉异常"+e.Message()),还是输出异常信息,这当然没什么影响,不过一般情况下不会像上面那样用的,都是e.printStackTrace()打印异常信息
e.printStackTrace()是打印异常堆栈信息,能够完整的输出各种异常,是程序员规范的代码写作形式,除非你要在catch块中做其他操作,否则一般都是写e.printStackTrace()
作者:
王涛
时间:
2012-6-21 21:46
我刚试了下你的代码,System.out.println("捕捉异常:"+e);输出的是异常类型和异常实例的详细消息字符串
System.out.println("捕捉异常"+e.Message());是错误的
应该是System.out.println("捕捉异常:"+e.getMessage());这个是输出异常实例的详细消息字符串
作者:
oracleserver
时间:
2012-6-22 15:32
本帖最后由 oracleserver 于 2012-6-22 15:33 编辑
e.getMessage(); 只会获得具体的异常名称. 比如说NullPoint 空指针,就告诉你说是空指针...
e.printStackTrace();会打出详细异常,异常名称,出错位置,便于调试用..
一般一个异常至少几十行,呵呵.....
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2