gpt4 book ai didi

java - Mono 中的 SystemException 和 ApplicationException 与 Java 中的未检查和已检查异常相同吗?

转载 作者:行者123 更新时间:2023-12-02 09:56:43 26 4
gpt4 key购买 nike

在Java中,异常有两种类型,主要是未检查异常和检查异常。检查异常允许程序在“catch” block 中捕获并处理异常时进行恢复。如果我没记错的话,未经检查的异常只会导致程序崩溃,因为它们没有被捕获,并且错误一直冒出来,得到了 main 方法而没有被捕获。

也就是说,在 Mono 中,有 ApplicationException 和 SystemException,我想知道它们在 Mono 中是否具有相同的用途。

最佳答案

不,他们不是。区别是不同的。

在Java中,检查与非检查的区别在于Java代码是否需要处理异常:

  • 不需要处理未经检查的异常
  • 需要捕获或在封闭方法的签名中声明受检查的异常。

(您应该根据您是否期望/希望调用者处理异常来选择将异常声明为已检查还是未检查。例如,您通常希望应用执行某些操作以从 IOException 中恢复,但是 NullPointerException 通常是一个错误,除了记录和退出之外无法处理。)

<小时/>

相比之下,.NET 中的 ApplicationExceptionsSystemExceptions 是关于异常的含义;参见Difference Between Application Exception and System Exception 。表面上的目的是允许程序区分框架异常和自定义异常。 (但实际上它并没有真正起作用......因为程序员不遵循指南/约定。)

<小时/>

I'm checking really only to see if the distinction would crash a running program if SystemException was thrown instead of an ApplicationException

你不能做出这样的概括。如果抛出任一类型的异常(或任何其他类型)且未捕获1,应用程序就会崩溃。对于 Java 异常也是如此。

1 - 在 Java 中,这取决于默认异常处理程序的行为。

关于java - Mono 中的 SystemException 和 ApplicationException 与 Java 中的未检查和已检查异常相同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944852/

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