C# 捕获结构为空的InvalidOperationException
我试图捕获在声明变量时有时会发生的C# 捕获结构为空的InvalidOperationException,c#,exception-handling,invalidoperationexception,C#,Exception Handling,Invalidoperationexception,我试图捕获在声明变量时有时会发生的InvalidOperationException。但是,下面的代码不起作用。可能是因为我真的不知道如何捕捉异常 public override void Download() { try { var t = (ForumThread)Globals.Db.Thread.Get(_extIdForumThread, _idF);
InvalidOperationException
。但是,下面的代码不起作用。可能是因为我真的不知道如何捕捉异常
public override void Download()
{
try
{
var t = (ForumThread)Globals.Db.Thread.Get(_extIdForumThread, _idF);
try
{
throw new InvalidOperationException();
}
catch (InvalidOperationException exception)
{
return;
}
catch (Exception exception)
{
throw;
}
}
}
任何帮助都将不胜感激。您不需要自己抛出异常。只要有:
try
{
var t = (ForumThread)Globals.Db.Thread.Get(_extIdForumThread, _idF);
}
catch (InvalidOperationException exception)
{
// Error logging, post processing etc.
return;
}
你也不应该真的捕捉到一般异常,除非你有很好的理由——即你的应用程序不能崩溃,但如果你这样做了,你需要能够从中恢复。你不需要自己抛出异常。只要有:
try
{
var t = (ForumThread)Globals.Db.Thread.Get(_extIdForumThread, _idF);
}
catch (InvalidOperationException exception)
{
// Error logging, post processing etc.
return;
}
您也不应该真的捕获到一般异常,除非您有很好的理由,即您的应用程序不能崩溃,但如果您这样做,您需要能够从中恢复。非常感谢。这就解决了我的问题。但是在我的项目中,我遇到了无法编译项目的问题,因为函数正在使用变量t,当它在try-catch中声明时,我得到“名称‘t’在当前上下文中不存在”我怎样才能避开它?@AndréHegge-如果你想在
try
之外使用变量t
,那么你需要在try
之外声明它。尽管尝试在异常处理程序中引用它可能不明智,因为它很可能未设置或包含错误的值。非常感谢。这就解决了我的问题。但是在我的项目中,我遇到了无法编译项目的问题,因为函数正在使用变量t,当它在try-catch中声明时,我得到“名称‘t’在当前上下文中不存在”我怎样才能避开它?@AndréHegge-如果你想在try
之外使用变量t
,那么你需要在try
之外声明它。尽管尝试在异常处理程序中引用它可能不明智,因为它很可能未设置或包含错误的值。