C# 将异常存储为变量
我遇到了通过另一个代码库处理异常的问题。有人知道是否可以将异常存储为变量以便调用它吗 我对C#有点陌生,但我觉得可以在var中存储任何内容。我需要传递它,因为我在异步线程中抛出异常,我需要将它移回处理异常的主线程。我无法传递它,因为异步类只能是任务或空类。有没有办法让这样的东西发挥作用C# 将异常存储为变量,c#,variables,exception,asynchronous,var,C#,Variables,Exception,Asynchronous,Var,我遇到了通过另一个代码库处理异常的问题。有人知道是否可以将异常存储为变量以便调用它吗 我对C#有点陌生,但我觉得可以在var中存储任何内容。我需要传递它,因为我在异步线程中抛出异常,我需要将它移回处理异常的主线程。我无法传递它,因为异步类只能是任务或空类。有没有办法让这样的东西发挥作用 var passedException = Exception(123456,"Bad thing that happened"); throw new passedException; 只需将new关键字移动
var passedException = Exception(123456,"Bad thing that happened");
throw new passedException;
只需将
new
关键字移动到创建Exception
对象的第一行:
var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;
只需将
new
关键字移动到创建Exception
对象的第一行:
var passedException = new Exception(123456,"Bad thing that happened");
throw passedException;
您应该更仔细地研究
var
数据类型实际上是什么,它与您的代码不工作无关
这里有一些问题;您尝试调用异常
构造函数,而不使用new
关键字。在下一行中,当实例仅适用于类型时,尝试在实例上使用new
关键字
Exception e = new Exception("My custom message!");
throw e;
很好用
如果您想使用
var
,那么您可以使用var e
,但它在这里没有任何价值,imo只是滥用了该功能var
只是一种语法糖,编译器只允许从语句右侧推断类型。您应该更仔细地研究var
数据类型实际上是什么,它与代码不工作无关
这里有一些问题;您尝试调用异常
构造函数,而不使用new
关键字。在下一行中,当实例仅适用于类型时,尝试在实例上使用new
关键字
Exception e = new Exception("My custom message!");
throw e;
很好用
如果您想使用
var
,那么您可以使用var e
,但它在这里没有任何价值,imo只是滥用了该功能var
只是语法上的糖分,编译器只允许从语句右侧推断类型。如果您使用的是任务
,则在您尝试获取结果或等待任务完成时将抛出an。如果您使用的是任务
,则在您尝试获取结果或等待任务完成时将抛出an完成