gpt4 book ai didi

PHP 错误处理,当错误是文本消息而不是抛出的异常时

转载 作者:行者123 更新时间:2023-12-03 07:40:00 24 4
gpt4 key购买 nike

所以,我刚刚开始一些 PHP 开发。我正在尝试使用 HTML DOM 导航/解析库。我选择了 ganon,但并不真正关心我最终使用哪一个。

但我立即注意到 PHP 与我见过的所有其他编码语言有着本质上的不同。当我查看错误处理时,这一点非常明显。如果包含的类/脚本只是打印它的错误,我不能简单地用 try/catch 捕获它。我相信这就是这里正在发生的事情。我没有控制权,尽管我是告诉 file_get_dom 运行的人。它可以做任何它想做的事情,并将任何它想要的内容写入生成的 HTML 文件。

这是不好的做法吗,它肯定把我搞砸了。解决办法是什么?我可以捕获它试图写入的文本(用隐藏的 div 包围它)吗?但是,在我想阻止此类编写它想要的任何内容的同时,我还知道是否发生错误,以便我可以采取适当的步骤。

注意:进行更多测试,即使我抛出自己的错误或使用“或死”,它也没有完全达到我的预期。所以也许我也不知道如何使用 Try/Catch,尽管我已经在一些教程中看到过它与此完全一样。但即使这是一个语法错误,我最初的问题仍然存在,如何控制包含的类,以便它们不会污染我的 html 文件。

<?php
try{
include_once('ganon.php');
}catch(Exception $e){ echo "OUT: $e->getMessage()"; }

class GamesSummery{
public function __construct(){

try{
$html = file_get_dom('web site adress');
}catch(Exception $e){ echo "Main: $e->getMessage()"; }
}
} $test = new GamesSummery();

输出:

"Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\hockey\ganon.php on line 238"

或者

"Warning: file_get_contents(): Filename cannot be empty in C:\xampp\htdocs\hockey\ganon.php on line 19"

最佳答案

首先,增加 php.ini 的执行时间,set_time_limit: http://php.net/manual/en/function.set-time-limit.php

其次,您创建的文件名是空的,因此您需要检查或输入新的文件名:

在访问它之前,您需要创建一个文件名或写入一个新文件名。创建一个文件作为示例:

$ourFileName = "example";

$ourFileHandle = fopen($ourFileName, 'w') or die("can't open file");

fclose($ourFileHandle);

关于PHP 错误处理,当错误是文本消息而不是抛出的异常时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15283990/

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