gpt4 book ai didi

c# - 有没有办法在没有异常类的情况下抛出自定义异常

转载 作者:IT王子 更新时间:2023-10-29 04:13:38 27 4
gpt4 key购买 nike

在 C# 中(即在 .NET 中)是否有任何方法可以抛出自定义异常,但无需编写所有代码来定义您自己的派生自 Exception 的异常类?

我在想类似的东西,例如在 Oracle PL/SQL 中,您可以简单地编写

raise_application_error(-20001, 'An arbitary error message');

在任何地方。

最佳答案

throw new Exception("A custom message for an application specific exception");

不够好?

如果相关,您还可以抛出更具体的异常。例如,

throw new AuthenticationException("Message here");

throw new FileNotFoundException("I couldn't find your file!");

可以工作。

请注意,根据 MSDN,您可能 throw new ApplicationException() .

不自定义 Exception 的主要缺点是调用者将更难捕获 - 如果不对异常进行一些时髦的检查,他们将不知道这是一般异常还是特定于您的代码的异常。消息属性。你可以做一些像这样简单的事情:

public class MyException : Exception
{
MyException(int severity, string message) : base(message)
{
// do whatever you want with severity
}
}

避免这种情况。

更新:Visual Studio 2015 现在提供一些异常扩展类的自动实现 - 如果您打开 Quick Actions and Refactoring Menu 并将光标放在 上:异常,只需告诉它“生成所有构造函数”即可。

关于c# - 有没有办法在没有异常类的情况下抛出自定义异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29994402/

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