抛出新异常("操作成功完成")有什么问题; 用于返回验证结果?

Uğu*_*han 1 php exception

使用Exceptions传递操作的结果状态是常见的还是我只应该使用函数return来传递值?

当我使用异常时,操作结果将保持彼此接近,否则,使用异常的错误和用于成功操作的返回值是另一种选择.

我还在考虑扩展异常类并向验证结果添加更多数据,而不是从验证函数返回数组.

我不确定,我想听听你的经验,哪种方法更常见.

编辑:目前我正在考虑做这样的事情,而不是使用例外.(用于存档体验.)

switch(login())
case: "success": /* success code; */ break;
case: "wrongpassword": $messagestoshow[]="wrong password"; break; 
...
Run Code Online (Sandbox Code Playgroud)

K-b*_*llo 5

使用Exceptions传递操作的结果状态是常见的还是我只应该使用函数return来传递值?

我不认为它很常见.我希望它不常见.

当我使用异常时,操作结果将保持彼此接近,否则,使用异常的错误和用于成功操作的返回值是另一种选择.

您的函数中有两个逻辑流,一个是在成功操作上结束返回值的预期流,另一个具有许多退出点(每个可能的异常源一个).使用异常返回值,而不是使用函数的返回值,它只是一个滥用.

关于何时是特殊情况的讨论有些松散.某些语言使用异常来标记迭代结束(Python)等情况,而在其他语言中抛出异常可能会导致不必要的影响,这些影响只会出现在异常情况下(C++).