当数据库脱机时,您如何管理您的应用程序?

gle*_*eng 6 .net sql-server error-handling

拿一个.Net Winforms App ..混合使用一个简单的无线网络连接,搅拌一些用户,他们喜欢偶尔拉出蓝色插头,并且在适当的时候添加一个系统管理员,决定重启SQL服务器盒而不发出警告现在又一次只是为了让每个人都保持警惕.

有关处理此类情况的建议和策略是什么:

  • 错误处理 - 例如,您是使用Try/Catch将每次调用包装到服务器还是依靠某种形式的通用错误处理来管理它?如果是这样,它看起来像什么?

  • 应用程序管理 - 例如,您是否禁用应用程序并且在再次检测到连接之前不允许用户与其进行交互?你会怎么做?

aku*_*aku 3

答案取决于您的应用程序类型。有些应用程序可以离线工作 - 例如 Microsoft Outlook。此类应用程序不会将连接异常视为关键,它们可以在本地保存您的工作并在以后进行同步。其他应用程序(例如在线游戏)会将通信问题视为严重异常,如果连接丢失,则会退出。

至于错误处理,我认为您应该控制所有层上的异常,而不是依赖于一些通用的异常处理代码。您的业​​务层应该了解下层(在我们的例子中为数据访问层)发生了什么并做出相应的响应。在我看来,连接丢失不应被视为意外异常。对于异常管理的良好实践,我建议查看异常处理应用程序块

关于应用程序行为,您应该回答以下问题“我的应用程序在断开连接状态下对客户有商业价值吗?” 在许多情况下,最终用户能够在断开连接的状态下继续工作将是有益的。然而,这种行为很难实施。

特别适合您的场景微软开发了断开连接的服务代理应用程序块