2012-09-10 21 views
-6

我有一段代码,它得到一个异常抛出,并且我的代码不在try-catch块内。有没有什么办法可以得到异常细节,而不用将其包装在try-catch块中?当尝试catch块没有提供时在C#中的异常处理

请帮忙。

+2

它怎么能不被“提供”给你? – Oded

+0

如果你没有在任何地方发现异常,你的应用将会死亡 –

回答

0

在这种情况下,您的异常将不会被处理,只是抛出。避免它们的最好方法是检查所有可能的异常源,并避免它们,例如,在发生null posible的情况下检查该方法是否首先返回null。

所以它要么处理一个例外,要么你不处理它,没有inbetweens。

0

Try/Catch语句可供您使用,您应该在处理异常时使用它。这取决于你正在执行的任务,你可能会捕获哪些异常。

你可以做这样的事情作为一个例子: -

​​

没有理由,为什么你不能执行此检查。

希望这会有所帮助。

+0

想知道,比如链接器或CLR的哪一部分或其他处理异常的部分。 – Chetan

+0

你必须从你想处理的最特殊*异常到最一般。在这种情况下,'ArguementException'不会被特定的catch语句捕获,它会被捕获到一般的'Exception'中。没有降低它,因为它仍然回答原来的问题。 – Arran

0

如果一个方法需要返回字符串变量,但我们不使用try catch块,你可以像这样:

delare一个字符串变量(现在我们把它命名为sRetString)的回报。

if(condition1) 

    sRetString="abc"; 

else 

    sRetString="edf"; 

if(string.IsNullOrEmpty(sRetString)) 

    return string.empty; 

else 

    return sRetString; 

但我认为你有渔获更好地使用try catch块一些意想不到的厚望。