- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
preserveWhiteSpace = false; $container -6ren">
我正在玩 try - catch
block :
<?php
try {
$str = "http://rejstrik-firem.kurzy.cz/73631604";
$domOb = new DOMDocument();
$html = $domOb->loadHTMLFile($str);
$domOb->preserveWhiteSpace = false;
$container = $domOb->getElementById('ormaininfotab');
echo $container; // <========= this is intended error which I want catch
}
catch (Exception $e) {
echo "Exception" . $e->getMessage() . ". File: " . $e->getFile() . ", line: " . $e->getLine();
}
catch (Error $e) {
echo "Error" . $e->getMessage() . ". File: " . $e->getFile() . ", line: " . $e->getLine();
}
?>
我的结果是这样的:
Catchable fatal error: Object of class DOMElement could not be converted to string in /var/www/html/cirkve_ares/test.php on line 8
为什么第二次捕获没有捕获到这个错误?
最佳答案
作为user2782001 mentioned在 PHP 开发人员看来,这不是错误。他们甚至指出,这些类型的错误应该被称为“可恢复的”:
we should get rid of any references to "catchable" fatal errors (if they still exist) in favor of "recoverable" fatal errors. Using "catchable" here is confusing as they cannot be caught using catch blocks.
关于ErrorException manual page有一种巧妙的解决方法,可以将那些“可捕获/可恢复”的错误转换为 ErrorException。
<?php
function exception_error_handler($severity, $message, $file, $line) {
if (!(error_reporting() & $severity)) {
// This error code is not included in error_reporting
return;
}
throw new ErrorException($message, 0, $severity, $file, $line);
}
set_error_handler("exception_error_handler");
?>
现在您将能够通过以下方式捕获这些错误:
<?php
try {
// Error code
} catch (Error $e) { // this will catch only Errors
echo $e->getMessage();
}
?>
或
try {
// Error code
} catch (Throwable $t) { // this will catch both Errors and Exceptions
echo $t->getMessage();
}
?>
关于PHP 7 try catch : unable to catch "Catchable fatal error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41774316/
我正在使用我的项目this处理ini文件的类。我已经使用 Windows EasyPHP 开发了所有项目,但是当我将它放入我的 Linux 网络服务器时,我总是在日志文件中收到此错误(使用 Light
JSONSerialization.data(withJSONObject:options:)(在 Swift 2 中又称为 dataWithJSONObject)被声明为 throws。但是,传递无
我正在尝试在我的一个类(class)上实现 PHP5 的类型提示, class ClassA { public function method_a (ClassB $b) {} } c
我目前正在为我的在职培训做一个项目。但是我遇到了一个无法解决的错误。 因此,我使用 ManyToOne 关系来连接 2 个事物,即类别中的产品。 但是当我想添加一个产品时,我遇到了这个错误: Cont
当我尝试运行 php artisan (anything) 时出现此错误: PHP Catchable fatal error: Argument 2 passed to Illuminate\Ro
我正在玩 try - catch block : loadHTMLFile($str); $domOb->preserveWhiteSpace = false; $container
我正在尝试在 symfony3 中对密码进行编码,但我遇到了一些问题。这是我得到的错误。 Catchable Fatal Error: Argument 3 passed to GMAOBundle\
为什么我会收到以下信息 error: could not find implicit value for parameter C: scalaz.Catchable[F2]执行P(1,2,3).run
我遇到了一些奇怪的事情: 我通过 app/console doctrine:generate:entity 创建了三个 doctrine 实体: 类别 用户 发布 我建立了关系,并且一切都与 fixt
我运行使用 Zend Framework 2 创建的应用程序时出现此错误: Catchable fatal error: Argument 1 passed to Zend\View\HelperPl
我有以下代码,它从数据库中检索页面 slug,然后需要创建相关的子页面: $builder->add('subtocontentoptions', 'entity', array(
我的 symfony 项目中有这个实体: /** * Batiments * * @ORM\Table(name="batiments") * @ORM\Entity * @ORM\Enti
刚从新项目开始,并想尝试ModX将其用于项目,但是会卡在此错误上(它不会消失): **Catchable fatal error: Argument 2 passed to modParser::co
当我在 Controller 中创建一个表单时,如下所示: $form = $this->createFormBuilder() ->add('field_name') ->getFo
我已经读过 this和 this和其他人,但没有人解决我的问题。 我已经删除了所有可能的内容并将范围缩小到一个字段:地址。当我尝试关注 this tutorial 时,如果我遵循它,一切都会正常,从一
我是一名优秀的程序员,十分优秀!