php - 什么是 PHP 中的异常,什么是 try 和 catch?

标签 php exception-handling class object try-catch

我对在 PHP 中使用对象/类很陌生,我对EXCEPTIONSTRYCATCH 感到好奇

在下面的示例中,我使用了所有 3 个。显然异常是某种触发错误的方式,但我不明白为什么?在下面的代码中,我可以很容易地显示某种错误或没有异常部分的东西吗?

该示例下方是使用 try 和 catch 的示例。在我看来,这与使用 if/else 是一样的。我可能是错的,这只是我在一无所知的情况下看到它们的方式,我知道你可以在不使用这些的情况下用 PHP 编写任何代码,所以这是什么原因,使用这些东西与传统方式相比有什么好处吗?

<?PHP
// sample of using an exception
if($something === $something_else){
    //do stuff
}else if($something === $something_else_again){
    //do stuff
}else{
    throw new Exception('Something went wrong!');
}

尝试捕获

//and try and catch
try{
    $thumb = PhpThumbFactory::create('/path/to/image.jpg');
}
catch (Exception $e){
    // handle error here however you'd like
}
?>

最佳答案

简而言之,异常是“改变程序执行的正常流程的特殊条件(引用维基百科)


您可能(至少)对那几篇文章感兴趣:

他们应该给你一些有趣的元素——尤其是第二个,关于“什么是 php 中的异常”


优点之一(这是基本思想的一部分)是:

  • try block 中有“正常”代码
  • “处理问题”代码的最大部分在 catch block 中
  • 这意味着“正常”代码中间的“处理问题”代码更少
  • 还允许您重新组合代码的“处理问题”部分

关于php - 什么是 PHP 中的异常,什么是 try 和 catch?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2018486/

相关文章:

http - Simple-Web-Server 因可能错误捕获的异常而崩溃

php - 为什么在使用类名和命名空间时不能实例化这个类?

php - 选择带有索引的列名

javascript - 用户输入文本后,如何使用 AJAX 更新数据库?

Java try-finally 里面的 try-catch 模式

VB.NET Try/Catch/When - 远离它还是有它的用处?

PHP5。将数组声明为类成员的两种方法

php - 需要帮助修复将生成 radio 组的类

php - MySQL LIKE + php sprintf

php - mongodb写关注