【发布时间】:2014-11-14 07:46:30
【问题描述】:
假设我有以下代码...
try
{
await Task.Run(() => autobuyandsell.Discard_Players(client, this));
if (stop == false)
{
await Task.Run(() => autobuyandsell.Buy_300_Players(client, this));
}
}
catch (ExpiredSessionException ex)
{
relogin = true;
b_stop.PerformClick();
}
在 autobuyandsell 内部,当我调用一些可以抛出该异常的方法时,可能会发生 ExpiredSessionException。我的问题是,我需要在函数内部添加另一个 try/catch 块还是足以处理 extern Exception?
已接受答案:
由于我的程序唯一需要的是退出方法并重新启动一些变量,最终我决定在方法之外使用try/catch。
【问题讨论】:
-
好吧,这完全取决于如果抛出异常,您希望发生什么。您是否希望您的(非常规命名,顺便说一句)
Discard_Players和Buy_300_Players方法在异常发生后继续?如果是这样,您需要在这些方法中捕获异常。否则,您可以在调用代码中捕获它们。 -
我为我的命名错误道歉。我是这个领域的新手,所以我会从一开始就努力养成好习惯。回到我的问题,我想要的是在收到异常后退出该方法,所以我想我必须只将异常留在方法之外。
-
如果您希望这个
try-catch处理异常,则不需要内部try-catch块。这样就可以了。