异常与OOP规则的非凡用法

时间:2017-07-13 16:04:11

标签: oop exception

我和我的朋友对异常有一些争论。他建议使用Exception作为响应的某种传输器(我们不能只返回它)。我说它与OOP规则相矛盾,他说这没关系,因为应用程序流程已经改变,信息已经通过。

你能帮我们解决纠纷吗?

function example() {
    result = pdo.find();

    if (result) {
        e = new UniqueException();
        e.setExistingItem(result);

        throw new e;
    }
}

try {
    this.example();
} catch (UniqueException e) {
    this.response(e.getExistingItem());
}

1 个答案:

答案 0 :(得分:0)

使用应用程序流的异常是一种误导性的做法。维护代码的任何其他人(甚至是你)都会感到困惑,因为你的流中异常的功能与异常的语义完全不同。

我想你之所以这样做是因为你想要返回不同的结果。为此,创建一个新类Result,它保存所有信息并通过if语句对其作出反应。