gpt4 book ai didi

java - ClassNotFoundException 成为检查异常的原因

转载 作者:搜寻专家 更新时间:2023-10-30 21:07:38 24 4
gpt4 key购买 nike

ClassNotFoundException 成为检查异常的原因是什么?

我一直在猜测和谷歌搜索,试图理解为什么将未找到的类视为已检查的异常,因为我的全部想法都告诉我它应该是未检查的。

最佳答案

当接收方可以/应该在运行时采取一些有意义的行动来纠正问题时,通常会检查异常。

Unchecked Exceptions — The Controversy说:

Here's the bottom line guideline: If a client can reasonably be expected to recover from an exception, make it a checked exception. If a client cannot do anything to recover from the exception, make it an unchecked exception.

最常见的来源 ClassNotFoundException s 是这样的代码

classLoader.loadClass(className);

根据在配置文件、序列化输入或远程过程调用中找到的名称反射式加载类。

这与 ClassNotFoundError 形成对比这通常是由一个程序静态与其他类一起编译而产生的,这些类在运行时无法被 JVM 的链接器找到。

反射用例(已检查)与链接静态编译代码失败(运行时错误)有什么区别?


上下文

反射性:调用者知道字符串的来源以及尝试加载的原因。

静态:调用者只是试图使用编译时可用的类。没有上下文可用。

恢复

反射性:调用者可以故障转移到不同的实现或尝试默认策略。

静态的:Java 语言没有明确支持替换不同的链接点。

改写

反射(reflection):调用者应该经常将错误转换为不同的类型,比如
一个IOException反序列化失败。

静态:如果程序的一部分缺失,那么您不能依赖程序的必要部分来解释为什么一个部分缺失到其他部分。

关于java - ClassNotFoundException 成为检查异常的原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16497906/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com