我这里有两个程序,分别使用多重try catch块和嵌套try catch块实现的。但是结果却相同。使用多重try catch块的方式不是更简洁吗?为什么还需要使用嵌套的try catch块。它们到底有什么区别呢?那个效率更高呢?多谢多谢!
使用多重的例子——
class NumberException {
public void test(final String[] argument) { try {
System.out.println("传递的参数是:"+argument[0]);
int numValue = Integer.parseInt(argument[0]);
System.out.println(argument[0] +"的平方" + "是" + numValue * numValue);
} catch (ArrayIndexOutOfBoundsException ne) {
System.out.println("请输入数字。");
} catch (NumberFormatException nb) {
System.out.println("不是一个数。");
}
}
}class MultipleCatch {
public static void main(String[] args) {
NumberException obj = new NumberException();
obj.test(args); }
}
下面是多重的计算结果:
C:\>java MultipleCatch
请输入数字。C:\>java MultipleCatch aaa
传递的参数是:aaa
不是一个数。C:\>java MultipleCatch 12
传递的参数是:12
12的平方是144使用嵌套的例子——
class NestedException {
protected NestedException() {
}
public void test(final String[] argument) {
try {
System.out.println("传递的参数是: " + argument[0]);
try {
int numValue = Integer.parseInt(argument[0]); System.out.println(argument[0] +"的平方" + "是"
+ numValue * numValue); } catch (NumberFormatException nb) {
System.out.println("不是一个数! "); }
} catch (ArrayIndexOutOfBoundsException ne) {
System.out.println("请输入数字。");
}
}
}
class NestedTry {
protected NestedTry() {
}
public static void main(String[] args) {
NestedException obj = new NestedException();
obj.test(args);
}
}
下面是使用嵌套输出的结果:
C:\>java NestedTry
请输入数字。C:\>java NestedTry aaa
传递的参数是: aaa
不是一个数!C:\>java NestedTry 12
传递的参数是: 12
12的平方是144到底有啥区别阿?
使用多重的例子——
class NumberException {
public void test(final String[] argument) { try {
System.out.println("传递的参数是:"+argument[0]);
int numValue = Integer.parseInt(argument[0]);
System.out.println(argument[0] +"的平方" + "是" + numValue * numValue);
} catch (ArrayIndexOutOfBoundsException ne) {
System.out.println("请输入数字。");
} catch (NumberFormatException nb) {
System.out.println("不是一个数。");
}
}
}class MultipleCatch {
public static void main(String[] args) {
NumberException obj = new NumberException();
obj.test(args); }
}
下面是多重的计算结果:
C:\>java MultipleCatch
请输入数字。C:\>java MultipleCatch aaa
传递的参数是:aaa
不是一个数。C:\>java MultipleCatch 12
传递的参数是:12
12的平方是144使用嵌套的例子——
class NestedException {
protected NestedException() {
}
public void test(final String[] argument) {
try {
System.out.println("传递的参数是: " + argument[0]);
try {
int numValue = Integer.parseInt(argument[0]); System.out.println(argument[0] +"的平方" + "是"
+ numValue * numValue); } catch (NumberFormatException nb) {
System.out.println("不是一个数! "); }
} catch (ArrayIndexOutOfBoundsException ne) {
System.out.println("请输入数字。");
}
}
}
class NestedTry {
protected NestedTry() {
}
public static void main(String[] args) {
NestedException obj = new NestedException();
obj.test(args);
}
}
下面是使用嵌套输出的结果:
C:\>java NestedTry
请输入数字。C:\>java NestedTry aaa
传递的参数是: aaa
不是一个数!C:\>java NestedTry 12
传递的参数是: 12
12的平方是144到底有啥区别阿?
解决方案 »
- 收集JAVA WebServer和C++ Client通讯的方法?(在线等)
- 不断的new,与有条件的new,差距多大?
- 可以把qq好友的隐身状态的软件的原理是什么啊,求指点
- 前辈们,帮小弟一把。。
- 关于单选按钮的获值问题(Swing的按钮)
- *************求 myeclipseide8 m2 的下载地址*************
- 怎样在控制台执行下面的代码
- 如何提高HashMap的效率
- java myclassfile 怎么老报错?
- 我是初学者,有几个问题,想请教各位高手,望不吝赐教
- BoxLayout中的显示
- 大家过来看看。如何去掉 一个字符串末尾的带的”,“逗号。郁闷了一天了
System.out.println("传递的参数是: " + argument[0]);
// 我在这里加一个循环。
for (int i=0; i<3; i++) {
try {
int numValue = Integer.parseInt(argument[0]); System.out.println(argument[0] +"的平方" + "是"
+ numValue * numValue); } catch (NumberFormatException nb) {
System.out.println("不是一个数! ");
}
}
} catch (ArrayIndexOutOfBoundsException ne) {
System.out.println("请输入数字。");
}如果出错的话,这段代码会出现3次,而多重只有一次。