求解:关于RuntimeException的理解 控制台能打印的Exception是不是就是RuntimeException?但是好像ClassNotFoundException在RuntimeException的子类里面没有,真的是不知道该怎么理解 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 classnotfoundexception不是runtime的,exception都能打印,只是checked exception需要写打印语句,在catch中。 楼主是不是还没学到Java的异常处理呀?Java的异常分为两类:逻辑错误和运行时异常。逻辑错误是因为程序逻辑出现错误,导致运行的时候出现错误。常见的就是ClassNotFoundException, NullPointerException, ArrayIndexOutOfBoundsException等等。这类错误是可以通过在编码时发现并避免的。另外一类就是运行时异常,其实就是有出现异常的风险。这种异常是你在运行之前是无法确定,因为你的程序本身是没有问题的,但是由于某些原因可能会在运行的时候出错。比如你要读一个文件,你的程序逻辑本身并没有错,但是运行的时候没有找到这个文件,程序就会抛出一个FileNotFoundException。Java专门针对这种异常处理设置了语法,那就是throw和catch还有finally的机制,你可以去学习一下。还有,这两种异常都是可以在控制台打印的。 我上面说的运行时异常就是楼主说的RuntimeException. 还有楼主说的ClassNotFoundException就是我提到的第一种错误。 ClassNotFoundException的继承结构:java.lang.Object java.lang.Throwable java.lang.Exception java.lang.ClassNotFoundExceptionRuntimeException的继承结构:java.lang.Object java.lang.Throwable java.lang.Exception java.lang.RuntimeException可以看出ClassNotFoundException在RuntimeException的子类里面是没有的至于控制台能不能打印完全看你怎么处理了对于ClassNotFoundException异常必须显式处理,否则编译不通过catch掉这个异常后是否打印由你catch块里决定对于RuntimeException异常不try{}catch{} 编译也可通过如果出错控制台会打印但是你要是把它也try{}catch{}一下并且在catch代码中不打印,那这个被捕捉的RuntimeException自然也不会打印咯 那怎么判断异常是不是RuntimeException,有些时候程序不需要写catch ClassNotFoundException啊, 有时候没有处理ClassNotFound啊, 哥们,貌似NullPointException就是RuntimeException。 哎哟,不好意思,基础知识不牢固,随手打了几个,没想到有一个打错了。但是分两类的问题不会有错,请相信我。我又想了一下NullPointerException确实应该是运行时异常,这个错误有时候你在编码的时候并不能确定。这时候就需要确定这个指针是不是空指针。简单的做法是用if语句判断一下。当然还可以用assert List中的toArray的一些问题 求教多线程问题 向大家请教一个数据结构算法问题!! JList列表项的显示 如何将一个标准JavaBean中的数据写入一个XML文件中,要下载新的Java类包吗? 工具条上的分割线,是如何做出来的? 关于java中正则的处理 有没有类可以把密码加密后,存入数据库,并且能取出来与实际密码比较,判断是否相等! 请大家给点意见 NetBeans6.1开发j2me 需要什么插件?谢谢啊 今天的面试题 ArrayList的增长方式 Java中的类和对象
Java的异常分为两类:逻辑错误和运行时异常。
逻辑错误是因为程序逻辑出现错误,导致运行的时候出现错误。常见的就是ClassNotFoundException, NullPointerException, ArrayIndexOutOfBoundsException等等。这类错误是可以通过在编码时发现并避免的。
另外一类就是运行时异常,其实就是有出现异常的风险。这种异常是你在运行之前是无法确定,因为你的程序本身是没有问题的,但是由于某些原因可能会在运行的时候出错。比如你要读一个文件,你的程序逻辑本身并没有错,但是运行的时候没有找到这个文件,程序就会抛出一个FileNotFoundException。Java专门针对这种异常处理设置了语法,那就是throw和catch还有finally的机制,你可以去学习一下。
还有,这两种异常都是可以在控制台打印的。
ClassNotFoundException的继承结构:java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.ClassNotFoundException
RuntimeException的继承结构:java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
可以看出ClassNotFoundException在RuntimeException的子类里面是没有的
至于控制台能不能打印完全看你怎么处理了
对于ClassNotFoundException异常必须显式处理,否则编译不通过
catch掉这个异常后是否打印由你catch块里决定
对于RuntimeException异常不try{}catch{} 编译也可通过
如果出错控制台会打印
但是你要是把它也try{}catch{}一下并且在catch代码中不打印,那这个被捕捉的
RuntimeException自然也不会打印咯
那怎么判断异常是不是RuntimeException,有些时候程序不需要写catch ClassNotFoundException啊,
有时候没有处理ClassNotFound啊,
哎哟,不好意思,基础知识不牢固,随手打了几个,没想到有一个打错了。
但是分两类的问题不会有错,请相信我。
我又想了一下NullPointerException确实应该是运行时异常,这个错误有时候你在编码的时候并不能确定。这时候就需要确定这个指针是不是空指针。简单的做法是用if语句判断一下。当然还可以用assert