所以,我知道try/catch会增加一些开销,因此不是控制流程流的好方法,但是这种开销来自何处以及它的实际影响是什么?
我有一个不幸的Java库,我继承了它解析JSON.现在,如果你要求一个JSON数组中不存在的密钥,它会以空指针消亡.我要编辑库来做更合理的事情.我想我有两个选择:
1)返回null,以便调用者可以检查
2)抛出更明确的异常(比"Null Pointer"更具描述性),强制调用者处理他们要求不存在的密钥的情况.
我来自python背景,我被强烈吸引到2号,因为它将确保某些骨头不能调用此函数,然后继续使用空值,稍后崩溃其应用程序并可能损坏数据.您认为哪种方式更符合Java的最佳实践?这不是关于同一主题的其他与语言无关的问题的重复.这特别是在Java的背景下!