php - PHP中的错误处理。怎么做?

标签 php error-handling

我是PHP OOP的初学者,并对使用PHP处理错误的正确方法有些疑问。

例如看这个功能:

public function deleteFileFromDisk($fileNameToBeDeleted) {

    $handle = unlink($fileNameToBeDeleted);

    if (!$handle) {
        $result = "(this->deleteFileFromDisk) - Error, " . $fileNameToBeDeleted . " not deleted.";
    } else {
        $result = "(this->deleteFileFromDisk) - Success, " . $fileNameToBeDeleted . " deleted.";
    }
    return $result;
}

这是正确的做法,还是我可以做得更好?

让我添加一些我所要实现的细节...

我正在运行类方法,并且需要控制过程中的错误。如果对该对象的任何调用引发错误,则需要捕获该错误并发送电子邮件。

以下是对象交互:
$testar_classe = new geoIpImportCSV('geolitecity', 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCity_CSV/');
$testar_classe->downloadAndSaveFile('./', $testar_classe->obtainDownloadFileName());
$testar_classe->uncompressZipFile($testar_classe->obtainDownloadFileName(), '.');
$testar_classe->deleteLine(1, 'GeoLiteCity-Location.csv');               
$testar_classe->deleteLine(1, 'GeoLiteCity-Blocks.csv');
$testar_classe->deleteDataFromTable('tabela1');
$testar_classe->deleteDataFromTable('tabela2');
$testar_classe->insertLinesToDb('GeoLiteCity-Location.csv', 'tabela1');
$testar_classe->insertLinesToDb('GeoLiteCity-Blocks.csv', 'tabela2');
$testar_classe->deleteFileFromDisk($testar_classe->obtainDownloadFileName());
$testar_classe->deleteFileFromDisk('GeoLiteCity-Blocks.csv');
$testar_classe->deleteFileFromDisk('GeoLiteCity-Location.csv'); 

哪个是处理此问题的最佳方法?创建一个新方法来处理异常?有任何有关如何执行此操作的示例?

最好的祝福。

最佳答案

您在这里所做的事情(返回一个字符串作为成功/失败指示符)确实是一个坏主意。问题是这样的字符串仅适合呈现给人类。当您需要知道是否失败以及如何处理失败时,它们对您的代码绝对没有用。

阅读以下相关问题:

  • Error handling in PHP
  • PHP Error handling
  • 关于php - PHP中的错误处理。怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4509972/

    相关文章:

    php - Ajax请求触发提交....为什么?

    php - 简单的 Foreach 循环与棘手的情况

    php - Uncaught Error : Call to a member function find() on boolean

    java - eclipse 超时

    带有 html 表单的 Php 页面在表单完成之前执行 php 代码

    php - 什么时候使用哪种字符串转义方法?

    php - Cakephp 警告 512 缓存文件夹无法写入

    c++ - 错误 : invalid initialization of reference of type

    c++ - "Object reference not set to an instance of an object"弹出 Visual Studio 桌面

    typescript - typescript promise 响应/错误的一般处理