在try-catch-finally之后继续

Rob*_*uch 4 .net c# exception-handling

这可能听起来像一个奇怪的问题,但我不明白......

假设我有一个应用程序连接到服务器来做一些事情.这种连接可能会失败并抛出一个我可以捕获的异常.

try {
  Client.connect();
} catch (System.Exception ex) {
  // Do some exception handling...
} finally {
  // Do some cleanup...
}
Run Code Online (Sandbox Code Playgroud)

但是,如果连接是成功的,应用程序将继续......

try {
  Client.connect();
} catch (System.Exception ex) {
  // Do some exception handling...
} finally {
  // Do some cleanup...
}

// Talk to the server...
Run Code Online (Sandbox Code Playgroud)

然而,在任何情况下都执行"服务器通话".是否发生异常并不重要.

如何确保只在连接成功时才执行"服务器通话"?我是否必须在try语句中移动以下所有代码?编写这种行为的干净方法是什么?

Eri*_* J. 13

"与服务器通话"应该在try块中发生,紧接着

Client.connect();
Run Code Online (Sandbox Code Playgroud)

  • 稍微思考一下,这可能是最好的选择:主要是,它避免了每个`catch`块中的代码重复(当然可能有不止一个).尽管如此,我认为将"try"的内容重构为一种新方法可能是一个好主意. (2认同)