我的php错误报告会停止向浏览器显示的可能原因是什么?我必须在某处改变某些东西,但对于我的生活,我无法弄明白.
我在php脚本中将error_reporting设置为E_ALL,似乎不是我的php.ini或.htaccess中的任何东西,它也会阻止它显示.
还有什么地方可以发生这种情况?
当我设置时error_reporting(E_ALL | E_STRICT);,我的代码会产生Undefined variable错误.我可以解决它们,但我想知道在编写通过严格检查的代码和E_STRICT关闭之间是否存在速度或内存使用方面的任何差异?
我在WP7.1和WP8中开发了一个Windows Phone应用程序.我需要为我的应用程序实现崩溃报告功能.每当发生强制关闭时,我想了解所发生事情的所有细节.有谁知道最好的方法吗?
我一直在使用PHP一段时间,但我偶然发现了一些我无法做出正面或反面的事情.这是我在这里发现的帖子(我相信已被锁定),我理解大部分解决方案,但只有一部分我很困惑.
if ( ( $number & $error_number ) == $number )
{
$error_description[ ] = $description;
}
Run Code Online (Sandbox Code Playgroud)
我不太确定在这里检查什么.任何帮助表示赞赏.
((完整代码))
<?php
$error_number = 22527; //could also use ini_get('error_reporting')
$error_description = array( );
$error_codes = array(
E_ERROR => "E_ERROR",
E_WARNING => "E_WARNING",
E_PARSE => "E_PARSE",
E_NOTICE => "E_NOTICE",
E_CORE_ERROR => "E_CORE_ERROR",
E_CORE_WARNING => "E_CORE_WARNING",
E_COMPILE_ERROR => "E_COMPILE_ERROR",
E_COMPILE_WARNING => "E_COMPILE_WARNING",
E_USER_ERROR => "E_USER_ERROR",
E_USER_WARNING => "E_USER_WARNING",
E_USER_NOTICE => "E_USER_NOTICE",
E_STRICT => "E_STRICT",
E_RECOVERABLE_ERROR => "E_RECOVERABLE_ERROR",
E_DEPRECATED => "E_DEPRECATED",
E_USER_DEPRECATED => "E_USER_DEPRECATED",
E_ALL …Run Code Online (Sandbox Code Playgroud) 是否有任何理由在stdout而不是stderr上打印错误?
我看到一些人使用stdout,分别是printf()来打印错误信息.有没有理由这样做或者只是懒得使用stderr?
我正在编写一个Perl管道,一个调用各种其他程序的脚本,并管理从一个到另一个的数据传递.脚本(称之为pipeline.pl)和它管理的各种子脚本共享一个subroutines.ph通过require subroutines.ph指令定义和包含的公共子程序列表.
其中一个是一个函数,其工作是退出打印错误消息(实际的子例程也做了一些其他工作,但它们在这里没有关系;不,我不是重新发明die()):
## subroutines.ph
sub errorDie
{
my ($errMsg) = @_;
## various other cleanup tasks here
die($errMsg);
}
1;
Run Code Online (Sandbox Code Playgroud)
并且,在pipeline.pl:
#!/usr/bin/perl
require 'subroutines.ph';
errorDie("foo")
Run Code Online (Sandbox Code Playgroud)
运行上面的脚本会导致:
foo at subroutines.ph line 5.
Run Code Online (Sandbox Code Playgroud)
是否可以让它报告类似于:
foo at pipelines.pl line 4.
Run Code Online (Sandbox Code Playgroud)
因此,die()它不应报告找到的行,而应报告errorDie调用子例程的原始脚本行.我知道我可以通过在$errMsg变量中包含行来实现这一点,但这很脆弱且很麻烦.这可以自动完成吗?外部文件中定义的子程序能否检测到它的调用位置?
我想trigger_error('Deprecated', E_USER_DEPRECATED);在运行时抑制此警告。从我读过的内容来看,我可以使用error_reporting(E_ALL & -E_USER_DEPRECATED & -E_DEPRECATED);. 但这是行不通的。我尝试过error_reporting使用 是否可以正常工作error_reporting(0)。这有效。我错过了什么?我没有找到其他方法来解决我的问题。并且没有注意到这种方式对其他人不起作用。
我的代码不抑制已弃用的警告:
error_reporting(E_ALL & -E_USER_DEPRECATED);
trigger_error('Deprecated', E_USER_DEPRECATED);
Run Code Online (Sandbox Code Playgroud)
PHP 版本:7.0.14.
我知道这些error_reporting值的含义。我知道-1意思是“显示全部”,0意思是“不显示”。
但是当用户没有指定任何内容时,没有任何地方指定默认设置的值是什么。
尝试phpinfo()我看到
...
Configuration File (php.ini) Path => /usr/local/etc/php
Loaded Configuration File => (none)
...
Run Code Online (Sandbox Code Playgroud)
那么,鉴于没有php.ini加载,默认值/行为是什么error_reporting?
有谁知道如何让以下报告javascript错误?(任何浏览器)
<head>
<title></title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/yui/2.6.0/build/yahoo-dom-event/yahoo-dom-event.js">
</script>
<script type="text/javascript">
ObjWithEvent = {
testEvent: new YAHOO.util.CustomEvent("testEvent")
};
ObjSubscriber = {
handleTestEvent: function(){
alert('the next line will not show up in the error console');
not_a_valid_function_bro();
}
};
ObjWithEvent.testEvent.subscribe(ObjSubscriber.handleTestEvent);
ObjWithEvent.testEvent.fire();
</script>
</head>
<body>
</body>
Run Code Online (Sandbox Code Playgroud)
我有一个自托管的Net Tcp WCF服务,我有以下方法
Subscribtion GetSubscribtion(int subscribtionId)
{
Subscribtion s;
if (_subscribtionTable.TryGetValue(subscribtionId, out s) == false)
{
Console.WriteLine("Not Found SessionID");//for debugging
throw new ArgumentException("Invalid Subscription Id");
}
return s;
}
Run Code Online (Sandbox Code Playgroud)
抛出异常是报告服务编程中错误的好方法吗?