我们可以在c#中创建一个异常类,它可以推断出异常的类型并相应地显示相关信息吗?

我们可以在c#中创建一个异常类,它可以推断出异常的类型并相应地显示相关信息吗?,第1张

概述我听说过,我们需要在代码时间知道我们要面对的例外情况并提供必要的捕获量. 现在我们不能推断刚从Exception类发生的实际异常的类型,然后转换它并获得所需的信息? 例如考虑这个: private void button1_Click(object sender, EventArgs e) { try { 我听说过,我们需要在代码时间知道我们要面对的例外情况并提供必要的捕获量.

现在我们不能推断刚从Exception类发生的实际异常的类型,然后转换它并获得所需的信息?
例如考虑这个:

private voID @R_419_5554@1_Click(object sender,EventArgs e)        {            try            {                //try doing something to generate and exception                int blah =8 / Convert.ToInt32(txtBox.Text);            }            catch (Exception ex)            {                //ex.GetType().name                //getting the type and casting it according to the retrIEved name                //and finally showing the more detailed info of the occurred exception               //for example like this?               //MessageBox((ex.GetType())ex).Message);              }        }

这只是传达我意义的一个示例,假设如果可能的话,我们将这个自定义类继承自Exception并为此目的进行所需的工作.

我们不能这样做吗?如果我们能怎样才能施展它?如果不能这样做,为什么呢?

解决方法 如果需要,可以将异常处理逻辑委托给一些定义良好的模块,其目的是…处理异常:)也许这样……?

try {    // code that throws something} catch (Exception e) {    myExceptionHandlingStrategy.handleException(e);}

其中myExceptionHandlingStrategy是MyExceptionHandlingStrategy的一个实例,MyExceptionHandlingStrategy是一个暴露接口IExceptionHandlingStrategy的模块,定义(可能)如下:

interface IExceptionHandlingStrategy {    voID handleException(Exception e);}

然后,在该接口的某些实现中(您可能有很多),您可以自由地执行以下 *** 作:

if (e is SomethingBadException) {    // show some message} else if (e is SomeOtherKindOfException) {    // do something else instead} else {    throw new CannotHandleThisException(e);}

PS:没有反思:)

总结

以上是内存溢出为你收集整理的我们可以在c#中创建一个异常类,它可以推断出异常的类型并相应地显示相关信息吗?全部内容,希望文章能够帮你解决我们可以在c#中创建一个异常类,它可以推断出异常的类型并相应地显示相关信息吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1218731.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-05
下一篇2022-06-05

发表评论

登录后才能评论

评论列表(0条)

    保存