因此,我最近正在编写一个用C#编写的相对复杂的应用程序,它可以反复执行一系列小任务。当我第一次启动应用程序时,我意识到我输入的很多代码都是重复的,所以我开始将大部分应用程序逻辑封装到单独的帮助器类中,我可以根据需要调用它们。哪里是我的C#应用程序中处理异常的正确位置?
不用说我的应用程序(和代码量)的大小,切成两半。但是当我经历的时候,我注意到我的应用程序中有其他东西似乎是重复的,看起来好像可以改进。
现在大部分的我在我的辅助类方法或者作出HttpWebRequest
或执行保存/上的文件删除操作。话虽如此,我需要处理最终调用不会完成的可能性,或者因为没有足够的空间或文件而导致文件无法保存。我遇到的问题是每次调用其中一种方法时,必须不断写入try/catch语句。最重要的是,我必须重新输入错误信息(或者最终是状态信息,我想知道它何时成功)。
所以这里有种类的片断的我有什么类型:
try
{
ItemManager.SaveTextPost(myPostItem);
}
// Majority of the time there is more than one catch!
catch
{
//^^^Not to mention that I have to handle multiple types of exceptions
//in order to log them correctly(more catches..ugh!)
MessageBox.Show("There was an error saving the post.");
//Perform logging here as well
}
从我迄今得出的结论是:
- 对我来说,这是矫枉过正有超过50写次我的应用程序。 听起来像我应该包括在助手类和 包括全套捕获。
- 但我怎么知道结果呢?我可能想要返回包含错误/成功消息的 字符串。
- 真正为这些类型的方法不需要从辅助方法被称为从方法到其封装在一个try/catch块。
是这种做法是否正确?有没有另外一种方法呢?我应该在调用方法中使用try/catch吗?由于这是我的第一枪,我真的很想听听处理这个场景的其他人是怎么说的。
最近有一个类似的问题被问到最近:http://stackoverflow.com/questions/8156530/exception-handling-in-method-definition-or-call/8156574#8156574 – Tudor