创建一个我希望处理的自定义异常是一个好主意吗?

pen*_*ake 2 .net c# c++ exception-handling exception

创建一个自定义异常是一个好主意,当应用程序逻辑失败时会抛出这个异常,而这个异常会被处理掉吗?

我想,最好还是返回一个对象或一个值; 但:

如果没有,那么在我们的代码中引入一些自定义异常的正确条件是什么?

谢谢!

Ode*_*ded 7

是的,假设您想要创建它的问题确实是一种特殊情况(即应该很少发生,如果有的话).

如果是(你期望的东西正常的错误情况发生在定期,是应用程序的正常使用的一部分),你应该为它明确代码-在这种情况下,创建和抛出一个自定义异常是一个代码味道.

此外,只有在添加信息(通过内置的)时才创建自​​定义异常.


编辑:(以下评论)

使用异常处理作为流控制的一种形式(即函数X是否正确完成)几乎总是一个坏主意,并且是一种明确的代码味道.