对于我们在我工作的公司开发的软件,我们使用第三方库,该库由我们经常联系的人开发。他的代码是用 C++ 编写的,我们在项目中使用 C#。
通常,他的库函数会返回错误代码。我决定使用不同的异常类来涵盖不同范围的错误代码。比如参数处理错误的一个异常类,主要操作错误的一个异常类,输入值错误的一个异常类等等。
他认为这不是一个好主意,并建议为库使用一个异常类来捕获所有错误,然后从 XML 文件中获取错误代码并将问题输出给用户。他认为,编写多个异常类是没有意义的。而且他还说他不能保证错误代码在不同版本的库中是相同的。
我认为拥有多个异常类是个好主意,因为:
- 可能存在不同的情况,我们需要以不同的方式处理问题。也许当出现参数异常时,除了输出错误之外,还可以做其他事情。但是他认为他的库正在处理所有事情,我们应该停止操作并输出错误。除了显示错误消息之外,我也想不出许多我们需要以不同方式处理的案例的具体示例。但我觉得我们可能需要它,我担心我只是违反了 YAGNI 原则。
- 我认为如果他错了,我们需要在不同的情况下以不同的方式处理事情,我将不得不引入条件代码(如果错误是 A 则执行此操作,如果 B 则执行此操作)。而且会很难处理。
我认为以一种我们可以以不同方式处理不同类型异常的方式来开发程序是一个更好的主意。但是那个人比我有更多的经验,而且他在公司里更有信誉(我是一个新的实习生)而且我对软件开发还很陌生,我觉得也许他是对的,我只是在尝试添加额外的代码,因为它看起来很漂亮,并且违反了 YAGNI 原则。
你认为我们应该上一门课还是多门课?如果您认为我们应该使用多个异常类,您的理由是什么?