我遇到的问题是异常是通过另一个代码库处理的。有谁知道是否可以将异常存储为变量,以便您可以调用它?
我对C#有点新鲜,但我的印象是你可以在var中存储任何东西。我需要传递它,因为我在异步线程中抛出一个异常,我需要将它移回到处理异常的主线程。我无法传递它,因为异步类只能是Task或Void。我有什么想法可以让这样的东西起作用吗?
var passedException = Exception(123456,"Bad thing that happened");
throw new passedException;
答案 0 :(得分:1)
您应该更仔细地查看var
数据类型实际上是什么,它与您的代码无效有关。
以下是一些问题;您尝试在不使用Exception
关键字的情况下调用new
构造函数。在下一行,当它仅适用于类型时,您尝试在实例上使用new
关键字。
Exception e = new Exception("My custom message!");
throw e;
工作正常。
如果您想使用var
,那么您可以执行var e
但它没有任何价值,而imo只是滥用该功能。 var
只是语法糖,如果可以从语句的右侧推断出类型,编译器将只允许它。
答案 1 :(得分:0)
var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;
答案 2 :(得分:0)
只需将new
关键字移到您创建Exception
对象的第一行:
var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;