gpt4 book ai didi

c# - Java/C# 中的检查异常是什么?

转载 作者:IT老高 更新时间:2023-10-28 21:21:58 26 4
gpt4 key购买 nike

我是一名 C# 开发人员,偶尔使用 Java 进行编码。有人可以简单地解释一下 Java 中的检查异常是什么,为什么需要它?在 C# 中没有遇到过这个术语。

最佳答案

已检查异常是编译器要求您以某种方式处理的异常。

在 Java 中,检查的异常是 Throwable s 不是 RuntimeException , Error ,或它们的子类之一。

Java 设计人员认为他们需要确保程序处理合理可能的异常。一个经典的例子是 IOException .任何时候程序执行 I/O,都有可能失败。磁盘可能已满,文件可能不存在,可能存在权限问题等。

因此,Java 的设计使得程序必须以某种方式在语法上处理异常。这可能是一个 catch block ,或者以某种方式重新抛出异常。

C# 没有检查异常。他们决定将此问题留给应用程序开发人员 (interview)。检查异常是有争议的,因为它们会使代码变得冗长,而开发人员有时会用空的 catch block 来处理它们。此外,哪个标准库方法抛出检查异常可以是任意的。例如,为什么不 File.delete (新的 Java 7 API 以不同的方式执行此操作)抛出 IOException?

Hejlsberg 在采访中指出的另一个问题是版本可控制性。向 throw 子句添加检查异常会强制使用该方法的所有代码都被修改和重新编译。

关于c# - Java/C# 中的检查异常是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9371686/

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