ClassNotFoundException

很明显,这个错误是 找不到类异常,即在当前classpath路径下找不到这个类。

ClassNotFoundException继承了Exception,是必须捕获的异常,所以这个异常一般发生在显示加载类的时候,如下面两种方式显示来加载类并要捕获异常。

publicstaticvoidmain(String[]args){

try{

Class.forName("com.User");

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

try{

Test.class.getClassLoader().loadClass("com.User");

}catch(ClassNotFoundExceptione){

e.printStackTrace();

}

}

当无法找到对应的类时都会抛出ClassNotFoundException异常。

java.lang.ClassNotFoundException:com.User

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

at com.test.user.Test.main(Test.java:15)

NoClassDefFoundError

这是虚拟机隐式加载类出现的异常。

这个异常继承了Error类,一般发生在引用的类不存在,即类、方法或者属性引用了某个类或者接口,如果目标引用不存在就会抛出这个异常。

importorg.jdom2.input.DOMBuilder;

publicclassMyDomBuilderextendsDOMBuilder{

}

publicstaticvoidmain(String[]args){

MyDomBuilderbuilder=newMyDomBuilder();

}

MyDomBuilder继承了DOMBuilder,如果把DOMBuilder所属的jar包范围设置为provided,即运行时找不到DOMBuilder类就会报错。

Exceptioninthread"main"java.lang.NoClassDefFoundError:org/jdom2/input/DOMBuilder

at java.lang.ClassLoader.defineClass1(NativeMethod)

at java.lang.ClassLoader.defineClass(ClassLoader.java:763)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)

at java.net.URLClassLoader.access$100(URLClassLoader.java:73)

at java.net.URLClassLoader$1.run(URLClassLoader.java:368)

at java.net.URLClassLoader$1.run(URLClassLoader.java:362)

at java.security.AccessController.doPrivileged(NativeMethod)

at java.net.URLClassLoader.findClass(URLClassLoader.java:361)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

at com.test.user.Test.main(Test.java:8)

Causedby:java.lang.ClassNotFoundException:org.jdom2.input.DOMBuilder

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

...13more

先报出ClassNotFoundException,然后引发NoClassDefFoundError。

所以,以上两个错误都要确保加载类或者引用类都要在classpath路径下。

ClassCastException

类转换异常,这个错误一般发生在一个对象强制转换类型的时候,如将一个String强制转换成Integer就会报这个错。

这个异常继承了运行时异常RuntimeException,不需要捕获的异常。为了避免报这个错,在转换之间可以先用instanceof判断下是不是该类的引用再转换。如果是集合类型,最好指定集合里面的泛型。

publicstaticvoidmain(String[]args){

Objectstr="123";

Integeri=(Integer)str;

}

字符串"123"强制转换成Integer,然后报错。

Exceptioninthread"main"java.lang.ClassCastException:java.lang.Stringcannot be cast to java.lang.Integer

at com.test.user.Test.main(Test.java:9)

看完有没有收获?

分享到朋友圈给更多的人吧。

Java3种错误_3种常见的Class级别的错误相关推荐

  1. 3种常见的Class级别的错误

    转载自 3种常见的Class级别的错误 ClassNotFoundException 很明显,这个错误是 找不到类异常,即在当前classpath路径下找不到这个类. ClassNotFoundExc ...

  2. web 常用的几种字体_3种免费Web字体服务比较

    这些年来,网站只能使用Arial,Georgia,Times等典型字体. 这是由于浏览器的局限性,浏览器一次只能只能从用户的计算机传递字体. 幸运的是,当今网络发展Swift,当今的浏览器支持webf ...

  3. 400错误请求怎么解决_什么是400错误请求错误(以及如何解决)?

    400错误请求怎么解决 A 400 Bad Request Error occurs when a request sent to the website server is incorrect or ...

  4. div为空的时候 浮动没有效果_3种CSS清除浮动的方法

    点击上方 "前端技术精选" 关注,星标或者置顶 12点00分准时推送,第一时间送达 作者:html中文网 | 编辑:前端妹 来源:html.cn/web/css/19613.htm ...

  5. css为什么要用浮动_3种CSS清除浮动的方法

    点击上方 "前端技术精选" 关注,星标或者置顶 12点00分准时推送,第一时间送达 作者:html中文网 | 编辑:前端妹 来源:html.cn/web/css/19613.htm ...

  6. 新闻背景:7种短信诈骗常见手段

    新闻背景:7种短信诈骗常见手段 1."您的朋友13XXXXXXXXX为您点播了一首XX歌曲,以此表达他的思念和祝福,请你拨打9XXXX收听".---回电话听歌可能会造成高额话费. ...

  7. 几种互联网产品的常见盈利模式

    数据分析师需要知道的几种互联网产品的常见盈利模式四种常见的盈利模式https://mp.weixin.qq.com/s/5bhWHmPr8maKpzKnuj1HSg

  8. 电子计算机机房折旧提几年,IDC设备资产运营中四种“折旧率计算”的常见方法...

    原标题:IDC设备资产运营中四种"折旧率计算"的常见方法 数据中心基础设施设备管理中设备的折旧是固定资产的折旧.该基础设施设备或者IT设备在长期使用后仍可保持其原始物理形态,但由于 ...

  9. PHP中间件ICE,ICE的安装配置,ICE常见编译和运行(异常)错误(自测Php版本安装部分,因为php版本跟ice版本不一样失败)

    ICE(Internet Communications Engine)是Zeroc提供的一款高性能的中间件.使用ICE能使得php(或c++,java,python)与java,c++,.net,py ...

最新文章

  1. oracle 关系 表 视图_oracle动态视图v$,v_$,gv$,gv_$与x$之间的关系
  2. WINCE6.0+S3C2443的启动过程---eboot6
  3. 【原】动态申请二维数组并释放的三种方法
  4. 迪士尼正式收购21世纪福克斯!网友:原来米老鼠才是灭霸…
  5. 【LINUX系列】之字符串搜索命令
  6. 关于【bootstrap modal 模态框弹出瞬间消失的问题】
  7. Python解析ofd文件
  8. [PED07]Feature Selection for Clustering:A Review聚类特征选择综述
  9. dbv mysql_mysql数据库版本控制dbv使用 - mysql数据库栏目 - 自
  10. php提取pdf首页图片,pdf图片怎么提取
  11. 【Android】使用deviceowner 配置手机设置 (Monkey自动化测试删去状态栏、设定输入法、静音、APP自动权限授予、Kiosk模式打开)
  12. unity shader中关于Tags的整理
  13. 吴氏太极拳宗师王茂斋简介
  14. codingdojo kata 之fizzbuzz
  15. oracle日期函数大全一(Date)
  16. eclipse配置python解析器_Eclipse中配置Python环境
  17. 前端HTML和CSS面试题总结
  18. 创业都是从一个想法开始
  19. 创新商用沟通协作方式,科天云发布协作云开放平台
  20. 如何将窗口变成半透明

热门文章

  1. [转] 接触C# 反射 2
  2. Gesture APIs-Furthering Windows Mobile 6.5 Touch Gesture Framework
  3. 适应关键业务环境的加湿系统
  4. 后端处理方式:特殊格式时间转换(2020-11-27T02:58:41.000000Z)
  5. webapp检测手机运动方向,可实现手机摇一摇功能的触发
  6. 洛谷P5108 仰望半月的夜空(后缀数组)
  7. 【暖*墟】#洛谷网课1.30# 树上问题
  8. 7.18 day13
  9. 5.2.1.开启驱动开发之路
  10. bzoj3209 花神的数论题——数位dp