避免使用异常进行常见的流量控制:
异常只能用于意外情况,而不是用来控制程序的流程。
有问题的代码示例:在超出数组的限制时尝试使用异常来结束循环。
try { int i = 0; while (true) { system.out.println(array[i++]); } } catch (arrayindexoutofboundsexception e) { // este código encerra o loop quando o índice ultrapassa o tamanho do array }
问题:这种异常的使用效率低下且令人困惑。最好使用合适的循环结构。
for (int i = 0; i < array.length; i++) { system.out.println(array[i]); }
api 设计含义:
设计良好的 api 应避免在正常流程中强制使用异常。
示例:iterator接口提供了hasnext()方法来检查是否有更多元素,避免调用next()时出现不必要的异常。
Iterator<String> iterator = list.iterator(); while (iterator.hasNext()) { System.out.println(iterator.next()); }
状态相关方法的替代方案:
当无法满足预期状态时,提供单独的方法来测试状态(hasnext)或特殊的返回值,例如 NULL 或optional。