求 Julia 错误异常处理的最佳实践方法

因为怕解析字符串出错所以一层一层用了不少 try_catch,有没有什么第三方库简化异常处理操作的,还是说自己为项目专门写个宏来处理呢?

比如处理字符串到Float的转换操作:
image

最佳实践估计还没有,可能实践的话不够多。
标准库有时会选择返回 nothing。然后就是 throw-try/catch。

我自己没试过,随手一搜

https://www.juliabloggers.com/managing-exceptions-with-resulttypes/


也可以参考下其他库

搜了下代码 JSON.jl 貌似管 error 不管 catch

1 个赞

try-catch怎么用可能还是更看当前的语境吧。举个例子

  • 如果parse错误的话就要把整条解析全部抛掉的话,那么就不应该在这里管它,而是加个comment说这里可能会抛ArgumentError, 然后在外层大循环里再来处理
  • 如果parse错误有非常清晰的fallback值的话(比如missing, nothing), 那么可以考虑在底层就把它处理好,这样的话外层大循环就会显得简单一些

关于更好的实践:MikeInnes有一个实验性的库 GitHub - MikeInnes/Effects.jl: Like a kick in the monads 可以看一看,不过我也不是非常清楚里面的设计思路。

1 个赞