使用异常作为工具尽早“捕获”错误是否可以?
我使用异常来尽早发现问题。例如: public int getAverageAge(Person p1, Person p2){ if(p1 == null || p2 == null) throw new IllegalArgumentException("One or more of input persons is null"). return (p1.getAge() + p2.getAge()) / 2; } 我的程序永远不要传递null此函数。我从来没有打算。但是,众所周知,编程中会发生意想不到的事情。 如果发生此问题,将引发异常,以便在导致程序其他位置出现更多问题之前,找出并修复该异常。异常会停止程序,并告诉我“这里发生了坏事,请修复它”。而不是null在程序周围四处走动,从而导致其他地方出现问题。 现在,您是对的,在这种情况下,这null将立即导致NullPointerException立马,所以它可能不是最佳示例。 但以这种方法为例: public void registerPerson(Person person){ persons.add(person); notifyRegisterObservers(person); // sends the person object to all kinds of …