gpt4 book ai didi

c# - 在 try-catch 子句上显示异常

转载 作者:可可西里 更新时间:2023-11-01 07:44:45 37 4
gpt4 key购买 nike

到目前为止,每当我想显示我使用的代码抛出的异常时:

try
{
// Code that may throw different exceptions
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}

我使用上面的代码主要是出于调试原因,以便查看异常的确切类型以及抛出异常的相应原因。

在我现在创建的一个项目中,我使用了几个 try-catch 子句,我想在出现异常时显示弹出消息,以使其更加“用户友好”。我所说的“用户友好”是指一条消息会隐藏当前与上述代码一起显示的 Null Reference ExceptionArgument Out Of Range Exception 等短语。

但是我仍然想查看与创建消息的异常类型相关的信息。

有没有办法根据之前的需要格式化抛出异常的显示输出?

最佳答案

您可以使用.Message,但我不建议直接捕获Exception。 try catch 多个异常或显式声明异常并根据异常类型定制错误消息。

try 
{
// Operations
}
catch (ArgumentOutOfRangeException ex)
{
MessageBox.Show("The argument is out of range, please specify a valid argument");
}

捕获 Exception 是相当通用的,可以被视为不好的做法,因为它可能会在您的应用程序中隐藏错误。

也可以通过检查Exception类型来检查异常类型并进行相应的处理:

try
{

}
catch (Exception e)
{
if (e is ArgumentOutOfRangeException)
{
MessageBox.Show("Argument is out of range");
}
else if (e is FormatException)
{
MessageBox.Show("Format Exception");
}
else
{
throw;
}
}

如果异常是 ArgumentOutOfRange 或 FormatException,它将向用户显示一个消息框,否则它将重新抛出异常(并保留原始堆栈跟踪)。

关于c# - 在 try-catch 子句上显示异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16145401/

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