gpt4 book ai didi

perl - 如何在没有位置信息的情况下输出 die() 消息?

转载 作者:行者123 更新时间:2023-12-03 09:01:50 27 4
gpt4 key购买 nike

我有一个通过 die 引发异常的脚本.当我捕捉到异常时,我想输出没有附加位置信息的消息。

这个脚本:

#! /usr/bin/perl -w

use strict;

eval {
die "My error message";
};
if($@) {
print $@;
}

输出 My error message at d:\src\test.pl line 7.
我宁愿只得到输出: My error message
希望人们不要关注我为什么要这样做,但如果有人感兴趣,那么:

我的脚本的工作方式是查找输入并将每条输入分派(dispatch)给处理程序,如果遇到无法处理的输入,则抛出,因此所有异常都来自同一段代码.因此,在这种情况下,该位置并不是很有帮助。

最佳答案

我在 Mastering Perl 中有一个关于“错误处理”的章节讨论这个。虽然您可以仅通过以新行结束您的消息来消除文件和行号,但您也可以 die有引用:

eval {
time % 2 ?
die {
message => q(I died!),
level => 'really really serious',
}
:
die "I died as a string!\n";
};

if( ref $@ ) {
print "Reference message was $@->{message}\n";
}
else {
print "$@\n";
}

我倾向于不喜欢错误消息末尾的换行符,虽然我还没有看到你的代码,但这听起来像是我想向异常添加额外信息的情况,这样我就可以追踪发生了什么。

您也可以考虑使用 CPAN 上的许多异常模块之一。

关于perl - 如何在没有位置信息的情况下输出 die() 消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022039/

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