我正在开发一个JS库,作为其中的一部分,我为小型标记语言构建了一个解析器,以使用户能够使用更复杂的表达式。我想知道,如果内部表达式语法出现错误并让用户使用try/catch
块中的函数,抛出异常是否是一种好做法,或者是否最好以其他方式(可能是控制台)通知用户存在解析错误(可能是控制台)?我真的不知道在构建库时抛出异常是否是常见的做法,例如,我知道jQuery在它的源代码中抛出了一些错误,但是jQuery是一个庞大的框架类库,所以我希望如此,但是对于小型库来说,这种情况常见吗?
发布于 2019-12-12 00:30:18
在解析错误上抛出异常的问题是,一旦抛出异常,就很难恢复解析。这意味着解析器打算在遇到第一个语法错误时立即放弃;换句话说,它希望用户一次修复一个错误。
可能您目前不执行任何错误恢复,因此这可能不会困扰您。但它应该。
您确定您不想尝试错误恢复,尤其是在听到用户抱怨如何尝试解析几十次或数百次才能找到所有错误之后?当您最终开始实现错误恢复时,您会高兴地发现并更改解析器所在的每一个地方来改变它的调用方式吗?
https://stackoverflow.com/questions/59297211
复制相似问题