/*
2008年9月22日17:58:27
自定义异常与java自带异常的区别
*/import java.io.*;class A extends Exception
{
}class M
{
public static void main(String[] args) // throws IOException
{
try
{
throw new IOException();
}
catch (ArithmeticException b) //为什么把ArithmeticException改为A 编译时就会出错
{
System.out.println("哈哈哈哈!\n");
}
catch (IOException e)
{
}
}}
解决方案 »
- BufferedReader问题
- org.apache.axis2.AxisFault: The [action] cannot be processed at the receiver
- 请教高手正规表达式
- 如何在JFrame或JPane上面加PAINT方法。(急)
- 怎么样才能对邮件进行安全验证
- 数组求最大直 怎么错了???
- 女士要不要优先啊!拜托,因为没有头绪,请各位高手帮帮忙啊,一次只能散一百分,若是不再够再散,写一个JAVA的简单小工具!
- 一个小问题,难道这是API里的一个bug?请高手解释一下
- 关于版本的问题
- 我生气了,放分!!!
- 请问怎么实现这种功能??
- java 随机取出定义数组中的元素且不重复 然后把取出的元素排序 在输出为TXT文本文件
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。 对于A,方法中没有说明要抛出这种异常,编译器就会报错了.
package exc;
import java.io.*; class A extends Exception
{
} class exception
{
public static void main(String[] args) // throws IOException
{
try
{
throw new A();
}
catch (A b) //为什么把ArithmeticException改为A 编译时就会出错
{
System.out.println("哈哈哈哈!\n");
} } }
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 可能在执行方法期间抛出但未被捕获的 RuntimeException 的任何子类都无需在 throws 子句中进行声明。 对于A,方法中没有说明要抛出这种异常,编译器就会报错了
------------------------------------------
小弟是不是可以这样理解: 如果一个方法中没有抛出某个可控制式异常,我们就不能用 catch去捕捉这个控制式异常! 或者讲:只有抛出的可控制式异常才能利用catch去捕捉,再通俗点说:编译器不允许去捕捉一个没有抛出的控制式异常!
请指教 先谢谢啦
但是RuntimeException及其子类型异常除外。因为这种类型异常若由JVM来控制开销太大,也不是程序员能控制的。
哈哈.这个大哥一提醒我才知道...原来我用Opera浏览器 那儿显示空白..试着点了一下,果然出来代码的下拉单了.