将异常存储为变量
本文关键字:变量 存储 异常 | 更新日期: 2023-09-27 18:34:55
我遇到了通过另一个代码库处理异常的问题。有谁知道是否可以将异常存储为变量以便您可以调用它?
我对 C# 有点陌生,但我的印象是您可以在 var 中存储任何内容。我需要传递它,因为我在异步线程中抛出异常,我需要将其移回处理异常的主线程。我无法传递它,因为异步类只能是任务或 Void。任何想法如何让这样的东西工作?
var passedException = Exception(123456,"Bad thing that happened");
throw new passedException;
您应该更仔细地研究var
数据类型的实际含义,它与您的代码不起作用无关。
下面是它的一些问题;您尝试调用 Exception
构造函数而不使用 new
关键字。在下一行中,当 new
关键字仅适用于类型时,您尝试在实例上使用该关键字。
Exception e = new Exception("My custom message!");
throw e;
工作得很好。
如果你想使用var
那么你可以做var e
但它在这里没有价值,imo 只是滥用该功能。 var
只是语法糖,但编译器只有在可以从语句的右侧推断类型时才允许它。
var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;
只需将 new
关键字移动到要创建Exception
对象的第一行:
var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;