代码在try块内执行良好,但如果try不存在,则会失败
本文关键字:try 如果 不存在 失败 执行 代码 | 更新日期: 2023-09-27 18:25:17
我有代码:
try
{
IUIItem menuItem = menu.Get(SearchCriteria.ByText(criteria));
menuItem.Click();
}
它只有在try块部分时才成功(没有例外)。如果省略了try块(没有try),它确实会抛出一个exeception。这在我看来是不可能的,但事实就是这样。为什么?
您需要查找try-catch的定义。当您有一个try-catch时,异常仍然被抛出,但try-catch会处理它,这样您的代码就可以继续运行。如果没有try-catch,程序就会中断,因为没有任何东西可以处理它。
如果没有catch语句,此代码将无法编译。如果你有:
try
{
IUIItem menuItem = menu.Get(SearchCriteria.ByText(criteria));
menuItem.Click();
}
catch (Exception ex)
{
}
代码将编译并抛出一个被捕获的异常,但没有对其执行任何操作,因此您不会注意到任何事情。
如果添加:
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw ex;
}
您将把异常消息写入控制台,然后重新抛出(转发)异常。