gpt4 book ai didi

perl - Perl 中处理异常的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-03 01:36:59 25 4
gpt4 key购买 nike

我注意到 Exception.pm 和 Error.pm 似乎并没有在 Perl 社区中广泛使用。这是因为异常处理的 eval 占用空间很大吗?

此外,Perl 程序对于一般的异常处理似乎有更宽松的政策。这有令人信服的理由吗?

无论如何,Perl 中异常处理的最佳方法是什么?

最佳答案

Perl 社区的共识似乎是 Try::Tiny是进行异常处理的首选方法。您提到的“宽松政策”可能是由于以下因素的结合:

  • Perl 并不是一种完全面向对象的语言。 (例如,与 Java 相比,你无法避免处理异常。)
  • 许多 Perl 开发人员的背景。 (像 C1 和 shell 这样的语言没有异常机制。)
  • 人们倾向于使用 Perl 来完成的任务类型。 (用于文本修改的小脚本和不需要异常处理的报告生成。)
  • Perl 没有(良好的)内置异常机制。

请注意,最后一项意味着您将看到很多如下代码:

eval { something() };
if ($@) {
warn "Oh no! [$@]\n";
}

这就是异常处理,即使它不使用 try/catch 语法。但它很脆弱,并且会在许多大多数人没有想到的微妙边缘情况下崩溃。 Try::Tiny 和 CPAN 上的其他异常处理模块的编写是为了更容易做到正确。

<子>1。 C 确实有 setjmp()longjmp(),它们可用于非常粗略的异常处理形式。

关于perl - Perl 中处理异常的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4006267/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com