常见的程序错误:
使用java命令执行一个不存在的类时,就会产生错误:[code=java]D:\>java test
Exception in thread "main" java.lang.NoClassDefFoundError: test
Caused by: java.lang.ClassNotFoundException: test
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)[/code]此时抛出了一个名为 “NoClassDefFound[color=Red]Error[/color]” 的错误。作者: 匿名 时间: 2011-7-21 19:55
在java程序设计语言中,异常对象都是派生与Throwable类的一个实例,所有异常都是有Throwable继承而来,但在下一层即分解为两个分支:Error和Exception
Error类层次结构描述了Java运行时系统的内部错误和资源耗尽错误。不过这种情况很少出现。
在进行Java程序设计的时候,需要关注的Exception层次结构。这个层次结构又分解为两个分支:一个分支是派生于RuntimeException的异常;另一个分支包含其他异常。划分两个分支的规则是:由程序错误导致的异常属于RuntimeException;曾经能够正确运行,由于某些情况(例如:I/O错误)导致的异常不属于RuntimeException。
如果遇到了无法处理的情况,Java的方法可以抛出一个异常。方法应该在其首部声明所有可能抛出的异常。这样可以从方法的首部反映出该方法可能会抛出哪类已检查异常。
在自己编写方法时,不必将所有可能抛出的对象进行声明。至于什么时候需要在方法中用throws子句声明异常,什么异常必须使用throws子句声明,需要记住在遇到下面4种情况才会抛出异常:
1.调用一个抛出已检查异常的方法
2.在程序运行过程发现错误,并且利用throw语句抛出一个已检查异常
3.程序出现错误
4.Java虚拟机和运行时库出现的内部异常。