class Demo
{
int div(int a,int b)
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[] args)
{
Demo d = new Demo();
try
{
int x = d.div(4,0);
System.out.println("x="+x);
}
catch (Exception e)//Exception e = new ArithmeticException();
{
System.out.println("除零拉");
System.out.println(e.getMessage());// /by zero
System.out.println(e.toString());
System.out.println(e.printStackTrace());//此处的e.printStackTrace() 是没有返回值类型的方法
e.printStackTrace();
}
System.out.println("over");
}
}
为什么没有返回值类型的方法不能放到输出语句 System.out.println();里面? 作者: 胡文杰 时间: 2012-6-29 01:32
如果没有返回类型,你把void方法放到输出语句中想输出什么呢?!作者: 李伟 时间: 2012-6-29 01:34
为什么没有返回值类型的方法不能放到输出语句 System.out.println();里面? 放到输出语句里面没有任何意义,因为没有返回值,输出语句没有内容可以打印作者: 赵庆礼 时间: 2012-6-29 01:43
class Demo
{
int div(int a,int b)
{
return a/b;
}
}
class ExceptionDemo
{
public static void main(String[] args)
{
Demo d = new Demo();
try
{
int x = d.div(4,0);
System.out.println("x="+x);
}
catch (Exception e)//Exception e = new ArithmeticException();
{
System.out.println("除零拉");
System.out.println("getMessage()返回结果---"+e.getMessage()); // 返回结果为---- / by zero
System.out.println("e.toString()返回结果---"+e.toString()); // 返回的结果为----java.lang.ArithmeticException: / by zero。参考下图
//System.out.println(e.printStackTrace()); //此处的e.printStackTrace() 是没有返回值类型的方法
//因为该方法没有返回值,放在打印语句中编译将会出错。
//所以打印语句就不能正常执行,
e.printStackTrace(); //因为该方法本身就是一个标准输出流,所以不用再写打印语句了,具体可参考下图。
}
System.out.println("over");
}
}
注释掉e.printStackTrace(); 时的截图