gpt4 book ai didi

c# - 如何知道何时使用现有异常或编写自定义异常?

转载 作者:太空狗 更新时间:2023-10-30 00:13:07 25 4
gpt4 key购买 nike

感谢您对 this question 的投入,我决定继续制作我的 Create() 方法throw exceptions 所以正如 Jon Skeet 所说,你不必在任何地方处理它们并且可以让它们冒泡,这似乎是最好的方法用于更大的应用程序。

现在我用这段代码创建我的类的实例:

try
{
SmartForms smartForms = SmartForms.Create("ball");
smartForms.Show();
}
catch (CannotInstantiateException ex)
{
Console.WriteLine("Item could not be instantiated: {0}", ex.Message);
}

自定义异常:

using System;

namespace TestFactory234.Exceptions
{
class CannotInstantiateException : Exception
{

}
}

我怎么知道要使用哪个异常类?

在上面的例子中,我创建了自己的异常,因为我不知道从哪里得到“所有系统异常”的列表,或者是否有一个“无法实例化对象”的列表,或者它是否有使用它的一些其他含义等。选择异常类型对我来说似乎总是一个任意过程,因此创建我自己的异常类型似乎是一般来说最好的主意。

或者我遗漏了一些关于异常的信息?决定使用哪种异常类型还涉及哪些其他影响?

最佳答案

如果您不能创建对象的原因是因为 Create 的参数无效,您可能应该抛出一个 ArgumentException。但是,如果您确实希望能够独立于其他人处理此类异常,您始终可以创建我们自己的派生自 ArgumentException 的类。 (您确定要这样做吗?)

关于c# - 如何知道何时使用现有异常或编写自定义异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/975762/

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