如果缺少配置值,我应该抛出什么异常?

Dav*_*idB 3 c# exception-handling

我有一个静态类,在其构造函数中从app.config中检索值.这些可能是null,如果是这种情况我想抛出异常.

我想在使用这些值的静态方法中抛出错误,但ArgumentNullException似乎不正确,因为它们不是传递给方法的参数.

有替代方案,还是这不是一个好方法?

Han*_*ant 5

扔什么都没关系.它不应该被捕获,捕获它不会修复.config文件.使用自定义异常类型只会鼓励不良做法.

所以不要,只是抛出异常.一定要告诉读者.config文件有什么问题,这是他唯一需要知道的事情.并且他可以阅读它,为AppDomain.CurrentDomain.UnhandledException编写一个事件处理程序

  • 在这种情况下不会有读者,因为它是一个按计划运行的控制台应用程序。我的想法是抛出它,在调用代码中捕获它并记录问题。 (2认同)