标签: error-reporting

PHP不显示错误 - 内部服务器错误(500)

我已经在Amazon AWS上使用*Apache2/MySQL/PHP5安装了全新的Ubuntu Server 12.04 LTS.当我运行PHP脚本并遇到错误时,我没有看到PHP的任何错误报告,我所看到的就是

HTTP Error 500 (Internal Server Error): An unexpected condition was encountered while the server was attempting to fulfil the request.
Run Code Online (Sandbox Code Playgroud)

我已经检查了我的/etc/php5/apache2/php.ini文件,据我所知,应该设置错误报告.文件的内容(关于错误)是:

;    display_errors
;      Default Value: On
;      Development Value: On
;      Production Value: Off

;    display_startup_errors
;      Default Value: Off
;      Development Value: On
;      Production Value: Off

;    error_reporting
;      Default Value: E_ALL & ~E_NOTICE
;      Development Value: E_ALL | E_STRICT
;      Production Value: E_ALL & ~E_DEPRECATED
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议吗?如果我尝试类似的东西$obj = new …

php error-reporting internal-server-error ubuntu-12.04

18
推荐指数
1
解决办法
5万
查看次数

@ error suppression operator和set_error_handler

我遵循良好的编程习惯,我将PHP错误记录到文件而不是将其显示给用户.我用set_error_handler()它.

现在问题.例如,我有一个地方:

@file_exists('/some/file/that/is/outside/openbasedir.txt');
Run Code Online (Sandbox Code Playgroud)

但是,尽管有错误抑制操作符,错误消息仍会记录.我不希望这样.我希望抑制错误不要传递给我的错误处理程序.

php logging error-reporting operator-keyword

17
推荐指数
3
解决办法
2246
查看次数

如何限制Django错误电子邮件

我通过电子邮件使用django错误报告.它通常是一个非常有用的功能,除了现在我们有5分钟的数据库停机时间,我收到了2000封电子邮件.是否有任何中间件可以帮助我限制django每分钟发送的电子邮件数量?

python django error-handling error-reporting

16
推荐指数
2
解决办法
2422
查看次数

解析PHP文件时在浏览器中启用错误

我最近换成了MacBook,现在使用MAMP-stack进行本地开发.

在我早期的开发环境中,当我尝试通过Web浏览器访问PHP文件并发生错误时,我总能看到提供信息的错误报告.使用MAMP的默认安装似乎禁用了此功能,每当我遇到错误时我都看不到它的原因,我甚至看不到一行告知我发生了错误.

直到我开始在调试器中调试代码,我才能看到错误发生的位置.

知道如何打开错误报告吗?

我试过了:

error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

虽然没有影响.

php mamp error-reporting

16
推荐指数
1
解决办法
3万
查看次数

来自WPF应用程序的异常报告

所以假设我碰巧在我的应用程序中有一个未处理的异常,或者由于某种原因它崩溃了.有什么方法让我捕获输出并在应用程序崩溃时显示错误报告对话框.

我在想的是在后台运行一个小程序,其唯一的工作就是监听主应用程序的异常退出,然后显示"报告"对话框,用户可以选择向我发送错误输出.

不确定如何实现这一点,或者这是否是正确的方法.

报告错误消息将是一项简单的任务,但我不知道如何捕获未处理异常的输出或获取退出代码(我假设程序在崩溃时会给出除0以外的退出代码).

在正确的方向上轻推是很棒的.

c# wpf error-handling error-reporting

15
推荐指数
2
解决办法
5681
查看次数

为什么不在PHP中使用最高错误报告级别?

我想让您说明为什么有人不应该在PHP中使用尽可能高的错误报告级别?

设定最高水平的方法:

PHP <5.4:

error_reporting(E_ALL | E_STRICT);
Run Code Online (Sandbox Code Playgroud)

PHP> = 5.4:

error_reporting(E_ALL);
Run Code Online (Sandbox Code Playgroud)

PHP 所有版本(建议用于配置文件):

error_reporting(2147483647);
Run Code Online (Sandbox Code Playgroud)

PHP 所有版本(我的配置,-1将包含所有错误,并且易于记忆)

error_reporting(-1);
Run Code Online (Sandbox Code Playgroud)

我的经历:

php error-reporting

12
推荐指数
1
解决办法
4472
查看次数

在MATLAB中将输出错误消息保存到文件中

有没有办法将MATLAB错误消息保存到文件中?

这可能是一个简单的问题,但谷歌无法给我答案.我编译了一个GUI可执行文件,可以在没有MATLAB许可证的情况下使用,偶尔会冻结.出于审美目的,我通常附带这样的可执行文件来抑制命令窗口,因此我无法通过命令提示符输出错误消息.我希望能够创建一个错误日志,可以通过电子邮件发送给我进行调试.

谢谢!

matlab error-reporting

12
推荐指数
2
解决办法
1万
查看次数

error_reporting()和ini_set('error_reporting')之间的区别?

使用error_reporting()ini_set('error_reporting')在我的脚本中,两者之间是否存在功能差异?一种方法比另一种方法更受欢迎吗?

对于它的价值,我看到很多框架都在使用error_reporting(),但两个选项似乎只在运行时设置,然后在脚本执行后重置回php.ini中的默认值.

php error-reporting

12
推荐指数
2
解决办法
9747
查看次数

使用有用的消息中止解析错误

我有一个ANTLR 4语法,并从中构建了一个词法分析器和解析器.现在我试图以这样的方式实例化该解析器,它将解析直到遇到错误.如果遇到错误,则不应继续解析,但应提供有关问题的有用信息; 理想情况下是机器可读的位置和人类可读的消息.

这就是我现在所拥有的:

grammar Toy;

@parser::members {

    public static void main(String[] args) {
        for (String arg: args)
            System.out.println(arg + " => " + parse(arg));
    }

    public static String parse(String code) {
        ErrorListener errorListener = new ErrorListener();
        CharStream cstream = new ANTLRInputStream(code);
        ToyLexer lexer = new ToyLexer(cstream);
        lexer.removeErrorListeners();
        lexer.addErrorListener(errorListener);
        TokenStream tstream = new CommonTokenStream(lexer);
        ToyParser parser = new ToyParser(tstream);
        parser.removeErrorListeners();
        parser.addErrorListener(errorListener);
        parser.setErrorHandler(new BailErrorStrategy());
        try {
            String res = parser.top().str;
            if (errorListener.message != null)
                return "Parsed, but " + errorListener.toString();
            return …
Run Code Online (Sandbox Code Playgroud)

java parsing antlr error-reporting antlr4

12
推荐指数
1
解决办法
1345
查看次数

E_NOTICE?== E_DEBUG,避免使用更复杂的error_handler的isset()和@

有哪些更好的方法可以避免isset()应用程序逻辑中的大量内容,并且需要保留查看调试消息(E_NOTICE)的能力?

首先推定:E_NOTICE不是错误,它是用词不当,实际上应该是E_DEBUG.然而,虽然这对于未设置的变量(PHP仍然是脚本语言)是正确的,但是一些文件系统函数等也会抛出它们.因此,需要开发 E_NOTICEs.

然而,并非所有调试通知都是有用的,这就是为什么在整个应用程序逻辑中引入isset()和@ 是一个常见的(不幸的)PHP习惯.isset/empty肯定有很多有效的用例,但总的来说它似乎是语法盐,实际上可能阻碍调试.

这就是我目前使用error_reporting书签和哑开/关开关的原因:

// javascript:(function(){document.cookie=(document.cookie.match(/error_reporting=1/)?'error_reporting=0':'error_reporting=1')})()

if (($_SERVER["REMOTE_ADDR"] == "127.0.0.1")
    and $_COOKIE["error_reporting"])
{
    error_reporting(E_ALL|E_STRICT);
}
else {/* less */}
Run Code Online (Sandbox Code Playgroud)

然而,这仍然让我有一个问题,即一旦启用就有太多通知来搜索.作为解决方法,我可以使用@ error suppress运算符.与isset()不同,它不会完全终止调试选项,因为自定义错误处理程序仍然可以接收抑制的E_NOTICE.因此,将预期的调试通知与潜在问题分开可能会有所帮助.

然而,这同样令人不满意.因此问题.有没有人使用或知道更复杂的PHP错误处理程序.我在想象:

  • 输出未过滤的错误/警告/通知(使用CSS绝对定位?)
  • 和AJAX-whatnot允许客户端检查和抑制
  • 但也保存了预期和" 已批准 "通知或警告的过滤列表.

当然,某些框架必须已经有这样的用户错误处理程序.

  • 基本上我对警告/通知管理很感兴趣.
  • 完全没有E_NOTICE抑制.
  • E_NOTICES 通缉.只是少了一些.默认情况下突出显示我可能关心的,而不是预期的.
  • 如果我在没有?order =参数的情况下运行,则会出现预期的NOTICE.由于预期,我不需要多次通知.
  • 但是,当处于完全调试模式时,我希望通过所述调试通知的存在(或更有趣的缺失)来看到存在未定义的变量. - >这就是我认为它们的用途.避免使用isset带来语言隐含的打印语句.
  • 还要意识到这是关于普通PHP表单处理语义适用的用例,而不是严格必须的应用程序区域.

哦,我有人请帮助改写这个.冗长的解释失败了.

php error-reporting

11
推荐指数
3
解决办法
1291
查看次数