C# Catch块内的代码限制
我们可以在c#中的try-Catch的Catch块中编写任何代码语句吗,C# Catch块内的代码限制,c#,C#,我们可以在c#中的try-Catch的Catch块中编写任何代码语句吗, 或者对于我们不能或不应该在C#的Catch块中写入的内容是否有任何限制?您不能在Catch块中屈服或等待。因此,以下两个将无法编译: public IEnumerable<int> SomeSequence() { try { //do something } catch { yield 1; //error } } 不过,您可以
或者对于我们不能或不应该在C#的Catch块中写入的内容是否有任何限制?您不能在Catch块中
屈服
或等待
。因此,以下两个将无法编译:
public IEnumerable<int> SomeSequence()
{
try
{
//do something
}
catch
{
yield 1; //error
}
}
不过,您可以轻松解决此问题:
public async int SomeFuncAsync()
{
Exception ex = null;
try
{
//do something
}
catch(Exception exc)
{
ex = exc;
}
if(ex != null) await Task.Delay(1000); // no error
}
当然可以。你能举个例子吗?你的意思是什么?catch block是一个类似于if、for和。。。块,并且对编写任何代码没有任何限制…
wait
在vnext中可以使用catch。产量的限制仍然有效,我相信谢谢你的回答。我会等待更多的答案。
public async int SomeFuncAsync()
{
Exception ex = null;
try
{
//do something
}
catch(Exception exc)
{
ex = exc;
}
if(ex != null) await Task.Delay(1000); // no error
}