代码在try块内执行正常,但如果try不存在则失败

时间:2015-12-01 16:42:56

标签: c# .net white

我有代码:

try
{
    IUIItem menuItem = menu.Get(SearchCriteria.ByText(criteria));
    menuItem.Click();
}

只有在try block部分(无异常)时才会成功。如果省略try块(没有尝试),它会抛出一个execption。对我来说似乎不可能,但这就是它的方式。为什么?

2 个答案:

答案 0 :(得分:2)

您需要查找try-catch的定义。当你有一个try-catch时,仍会抛出异常,但是try-catch会处理它,所以你的代码可以继续运行。如果没有try-catch,程序将会中断,因为没有任何东西可以处理它。

答案 1 :(得分:0)

如果没有catch语句,此代码将无法编译。如果你是有:

try
{
    IUIItem menuItem = menu.Get(SearchCriteria.ByText(criteria));
    menuItem.Click();
}
catch (Exception ex)
{
}

代码将编译并抛出一个被捕获的异常,但没有任何操作,所以你不会注意到任何事情。

如果你添加:

catch (Exception ex)
{
    Console.WriteLine(ex.Message);
    throw ex;
}

您将异常消息写入控制台,然后重新抛出(转发)异常。