lealone / Lealone

比 MySQL 和 MongoDB 快10倍的 OLTP 关系数据库和文档数据库
Other
2.48k stars 520 forks source link

throwInternalError 的问题 #115

Closed cbqqkcel closed 3 years ago

cbqqkcel commented 3 years ago

https://github.com/lealone/Lealone/blob/16842b21abdbb6de622c92b1001d2fed1eab03f7/lealone-client/src/main/java/org/lealone/client/session/ClientSessionFactory.java#L122

DbException.throwInternalError 里面已经抛异常,不会有返回了。 感觉这个 throwInternalError 有问题。

codefollower commented 3 years ago

问题已修复,谢谢报告 bug。

cbqqkcel commented 3 years ago

问题已修复,谢谢报告 bug。

好多地方都有这个问题

codefollower commented 3 years ago

这个 H2 的遗留代码的确看起来有点困惑, 我新加了getInternalError方法, 把throw DbException.throwInternalError全替换成throw DbException.getInternalError 这样看起来清晰点,而不是两个throw 不过它这个实现目的就是为了抛出一个RuntimeException,代码是能达到目的的,只是看起来别扭。

cbqqkcel commented 3 years ago

这个 H2 的遗留代码的确看起来有点困惑, 我新加了getInternalError方法, 把throw DbException.throwInternalError全替换成throw DbException.getInternalError 这样看起来清晰点,而不是两个throw 不过它这个实现目的就是为了抛出一个RuntimeException,代码是能达到目的的,只是看起来别扭。

是的。他这个DbException.throwInternalError不好用,有时候还改变了Java静态分析的控制流。还不如每次手动 throw