gpt4 book ai didi

perl - ActivePerl 不会向浏览器输出 fatal error

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

我正在使用以下代码来测试向浏览器输出 fatal error :

use CGI;
use CGI::Carp qw(fatalsToBrowser);

die "test";

我希望在浏览器中看到一些错误,但实际上并没有,我只是收到一个常规的 500 响应。我忘记了我为远程请求打开了自定义错误页面,现在我得到了 Script failed to send data.

还有:

> perl -w index.pl
Status: 500
Content-type: text/html

<h1>Software error:</h1>
<pre>test at index.pl line 4.</pre>
<p>
For help, please send mail to this site's webmaster, giving this error message and the time and date of the error.

</p>
[Mon Feb 8 18:29:52 2010] index.pl: test at index.pl line 4.

最佳答案

尝试先打印几行。这向服务器发出 HTTP header 结束的信号,作为 'CGI standard'。说。或者你可以使用这样的东西:(从 Carp man page 复制):

use CGI::Carp qw(set_die_handler);
BEGIN {
sub handle_errors {
my $msg = shift;
print "content-type: text/html\n\n";
print "<h1>Oh gosh</h1>";
print "<p>Got an error: $msg</p>";
}
set_die_handler(\&handle_errors);
}

如果这不起作用,这里还有一些技巧:

#!perl
BEGIN { $| = 1; print "\n\n" }
open STDERR, ">&STDOUT";

..还有一些技巧in this Perl Journal article .

关于perl - ActivePerl 不会向浏览器输出 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2218147/

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