- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - phát hiện rò rỉ bộ nhớ Ruby/Ruby on Rails
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
为了抛出异常,我通常使用内置的异常类,例如ArgumentNullException
Và NotSupportedException
。但是,有时我需要使用自定义异常,在这种情况下我会写:
class SlippedOnABananaException : Exception { }
class ChokedOnAnAppleException : Exception { }
等等。然后我在我的代码中抛出并捕获这些。但是今天我遇到了 ApplicationException
类——我应该改用它吗?它有什么用?
拥有许多名称不同但实际上完全相同的异常类似乎效率低下(我通常不需要任何单独的功能)。但我不喜欢捕获通用 ApplicationException
并且必须使用额外代码来确定错误是什么的想法。
ApplicationException
应该在哪里适合我的代码?
câu trả lời hay nhất
简短的回答是:无处可去。
它是过去的遗物,微软希望开发人员从 ApplicationException 继承他们所有的自定义异常。不久之后,他们改变了主意并建议自定义异常应该从基异常类派生。参见 Best Practices for Handling Exceptions在 MSDN 上。
其中一个广为流传的原因来自 Jeffery Richter 在 Framework Design Guidelines 中的一段摘录。 :
System.ApplicationException is a class that should not be part of the .NET Framework. The original idea was that classes derived from SystemException would indicate exceptions thrown from the CLR (or system) itself, whereas non-CLR exceptions would be derived from ApplicationException. However, a lot of exception classes didn't follow this pattern. For example, TargetInvocationException (which is thrown by the CLR) is derived from ApplicationException. So, the ApplicationException class lost all meaning. The reason to derive from this base class is to allow some code higher up the call stack to catch the base class. It was no longer possible to catch all application exceptions.
就是这样。执行摘要是 ApplicationException 不是有害,只是无用。
关于c# - .NET 中的 ApplicationException 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5685923/
我一直在调试我新创建的 WCF 服务故障合约的问题,并最终找到了问题所在。 我这样定义服务: [ServiceContract] public interface IService1 { [O
Tôi đang cố gắng kiểm tra ứng dụng của mình nhưng tôi gặp phải lỗi sau: System.Web.HttpUnhandledException: Một ngoại lệ của loại 'System.Web.HttpUnhandledException' đã bị ném
Printscreen我的代码错误和我的引用资料。“ApplicationException”有错误,我只是不知道如何解决它。 using System; using System.Net; usin
我只是在 Mutex 上进行试验并编写了以下代码。 using System; using System.Collections.Generic; using System.Linq; using S
在我的文件存储库中,当调用 InsertFile() 方法时,我将抛出以下异常: 超过上传文件大小限制时 超出存储容量时 目前我只是抛出一个带有相关消息的ApplicationException: p
我正在尝试一个 ApplicationException 异常,当输入不是数字时,它只会显示一条消息。这是我现在拥有的: static void getBookInfo(Book book) {
我的问题与事务和异常有关 要求: 我有 10 条记录要插入到数据库表中。在插入每条记录后,我将数据插入到另一个表中。因此,如果插入第二个表失败,我想回滚该记录。 例。假设一次处理 10 个人的现金转账
为了抛出异常,我通常使用内置的异常类,例如ArgumentNullException 和 NotSupportedException。但是,有时我需要使用自定义异常,在这种情况下我会写: class
我正在 VSCode 中使用 C# 开发语音转文本模型。该模型正确转录第一个文件。当我添加新文件并尝试转录时,出现以下错误: 发生异常:CLR/System.ApplicationExceptionS
我正在尝试对这样的 wav 文件进行语音识别: var config = SpeechConfig.FromSubscription("mykey", "myregion"); using (var
我正在尝试对这样的 wav 文件进行语音识别: var config = SpeechConfig.FromSubscription("mykey", "myregion"); using (var
我们面临类似于以下的场景: @ApplicationException(rollback = true) class UniqueConstraintViolated extends RuntimeE
我的运行时异常 @ApplicationException(rollback=false) public class UncheckedException extends RuntimeExcepti
据我所知,您应该始终在 .NET 中为您的自定义异常实现 ApplicationException 类。我最近开始开发 Windows Phone 7,但我找不到这个类。我现在应该使用不同的类(cla
我通过 CodenameOne 的 IKVM 版本运行了一个第 3 方 Android 库,并成功导入了输出 .dll 作为对我在 Visual Studio 中的 UWP 应用程序的引用。在尝试编译
我有 Web 服务,其方法会抛出我的自定义异常。 @WebMethod void someMethod(...) throws MyException MyException 类用 @Applic
我在 JSF bean 中这样调用 account EJB 方法: try{ account.someFunction(...); }catch(SimRuntimeException e){
我在 c++/CLI 库中有以下代码来捕获非托管异常并重新抛出它们: catch(const std::exception &e) { String ^errorMessage = Strin
我有一个方法可以抛出应用程序异常,并且回滚为 true。我想知道是否必须显式调用 ejbContext.setRollbackOnly() ? 文档 here表示当异常标记为rollback=true
我需要一些指导,了解如何在 Java EE 环境中最好地使用异常,通过 JAX-RS 为客户端提供服务。 目前,我有很多异常,都扩展了 RuntimeException,并用 @Application
Tôi là một lập trình viên xuất sắc, rất giỏi!