常见的3种Class级别的错误

简介: ClassNotFoundException很明显,这个错误是找不到类异常,即在当前classpath路径下找不到这个类。ClassNotFoundException继承了Exception,是必须捕获的异常,所以这个异常一般发生在显示加载类的时候,如下面两种方式显示来加载类并要捕获异常。

ClassNotFoundException

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


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

public static void main(String[] args) {
    try {
        Class.forName("com.User");
    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    try {
        Test.class.getClassLoader().loadClass("com.User");
    } catch (ClassNotFoundException e) {
        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类,一般发生在引用的类不存在,即类、方法或者属性引用了某个类或者接口,如果目标引用不存在就会抛出这个异常。

import org.jdom2.input.DOMBuilder;
public class MyDomBuilder extends DOMBuilder{
}
public static void main(String[] args) {
    MyDomBuilder builder = new MyDomBuilder();
}


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

Exception in thread "main" java.lang.NoClassDefFoundError: org/jdom2/input/DOMBuilder
    at java.lang.ClassLoader.defineClass1(Native Method)
    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(Native Method)
    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)
Caused by: 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)
    ... 13 more

先报出ClassNotFoundException,然后引发NoClassDefFoundError。


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


ClassCastException

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


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

public static void main(String[] args) {
    Object str = "123";
    Integer i = (Integer)str;
}

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

Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
    at com.test.user.Test.main(Test.java:9)
相关文章
|
5天前
|
JavaScript API iOS开发
DeepSeek Harness下载、安装、配置一篇搞定(2026整理,送常用插件)
DeepSeek Harness(DSH)是DeepSeek于2026年开源的MIT协议AI Agent框架,支持插件化组装模型、工具、沙箱与UI,兼容主流大模型。本文提供免Node.js的桌面端安装包(Win/macOS),含详细图文教程及热门插件推荐。
2495 17
|
6天前
|
iOS开发 Docker MacOS
【2026实测】Docker Desktop下载、安装、汉化、配置教程(附官网安装包)
Docker Desktop 是 Docker 官方推出的桌面容器管理工具,集成引擎、CLI、图形界面与 Kubernetes,支持 Win/macOS/Linux。2026 最新版 4.88.1 强化 ARM 原生运行、镜像加速及资源可视化,附中文汉化与国内镜像配置指南。
1088 3
|
云安全 安全 网络安全
|
5天前
|
Linux 开发工具 iOS开发
Codex保姆级教程(下载+安装+登录+使用,含所有版本,2026最新)
Codex是OpenAI推出的开源AI编程智能体,本地运行,可理解整个代码库,支持自然语言指令改代码、执行命令、跑测试、修Bug,兼容Win/macOS/Linux。(239字)
|
6天前
|
安全 算法 定位技术
《高性价比人生指南》完整原版:普通人用最少的资源,过好这一生的底层逻辑~How To Live Better
📖《高性价比人生指南》是一份基于实证、拒绝焦虑的生存手册,倡导以“人生时薪”为视角,重新计算时间、金钱与精力的成本与收益。它不承诺逆袭,只教人算清账:省下的钱若耗掉时间便亏;买体验比买物品更值;睡眠是最高杠杆的健康投资;关系贵在情绪价值而非表面热络;学习重在改变行为而非自我安慰。核心理念:用低成本、高回报的微小行动,换取长期的选择权——不是成为谁,而是掌控自己人生的主动权。
|
18天前
|
人工智能 API 开发工具
DeepSeek Harness 神插件:白嫖 13 家大厂模型
`dsh-our-free-model` 是 DeepSeek Harness 神级插件:零配置、零API Key、零账号,聚合13家大厂免费模型(含DeepSeek V4.1 Flash、Kimi K3等),支持本地网关、用量看板与自动降级,真正实现“白嫖即用”。
3242 51
|
12天前
|
JavaScript 安全 前端开发
Nodejs Brotli decoder 代码执行漏洞 (CVE-2026-111497)10629
Node.js发布安全更新修复Brotli解码器高危RCE漏洞(CVE-2026-111497),建议受影响版本用户立即升级。
2120 2
|
11天前
|
人工智能 JSON Linux
【保姆级】ComfyUI部署教程(下载+安装+配置+工作流,2026最新)
ComfyUI 是一款开源节点式AI生成工具,支持图像、视频、音频及3D内容创作。通过拖拽连线组合模型加载、提示词、采样等节点,构建可复用、易修改的工作流,兼容SD1.5、SDXL、Flux、Qwen Image等主流模型。

热门文章

最新文章