了解尝试和捕获

时间:2015-11-05 11:21:32

标签: php

这可能听起来很荒谬。但是,如果你不问你,你永远不会学习。

我对PHP和自学成才相对较新,所以我还没有完全掌握所有内容和#34; <34>。

是否需要以下内容:

try {

}

catch {

}

我是否正确地认为try会尝试执行&#34;括号内的代码和catch会尝试捕获结果的结果吗?如果没有什么可以捕获的话会引发错误吗?

6 个答案:

答案 0 :(得分:2)

第一个假设是正确的:将尝试运行try中的代码。

但是,如果没有抛出错误,则块正常退出。如果抛出错误,则try执行提前结束并进入catch块。所以你的第二个想法是切换的。

答案 1 :(得分:0)

在try块中执行代码,只要该块中的某些内容失败,它就会跳转到catch块。您通常会定义一个包含异常的变量。 所以要回答你的问题,当try块没有出错时,不会处理catch块。 (除非你特别抛出异常)

try {

} catch (Exception $e) {
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

答案 2 :(得分:0)

尝试阻止保存您要执行的代码。如果你有任何错误,Catch块保存代码,然后它将执行catch代码或错误消息。

基本上尝试并捕获我们正在使用的错误处理,并避免破坏程序和页面的控制流。

答案 3 :(得分:0)

简单示例:

<?php

    class A {

        public function getA($a = 0)
        {
            if ($a === 0) {
                throw new ItCantBeZeroException("Message");
            }

            return $a;
        }
    }

    // I want to throw default exception because I'm not sure
    // am I doing it right or what can I do with bad parameter.
    $a = new A;
    echo $a->getA(0);

    // Now, I know what I can do if developer write bad input.
    // It can't be 0, so I just print my custom error message
    // to my page.
    try {
        $a = new A;
        echo $a->getA(0);
    } catch (ItCantBeZeroException $e) {
        echo "Parameter can't be zero. Try again.";
    }
?>

您可以定义自己的例外(例如ItCantBeZeroException)。异常会在网站上抛出错误(例如&#34;消息&#34;)但我们可以抓住它们并改为我们想要的东西。

  1. 你编写一个简单的类,其中一些代码必须是0到20之间的字符串或整数。
  2. 您使用此代码,但是当用户创建变量21时,简单的类抛出错误。
  3. 您重构代码以捕获异常并尝试修复代码,例如更改任何大于20到20的整数。然后代码正常工作。

答案 4 :(得分:0)

Try and Catch称为异常处理

根据w3schools:

异常处理用于在发生指定错误时更改脚本的正常流程。

更多信息: http://www.w3schools.com/php/php_exception.asp

答案 5 :(得分:0)

try catch用于异常处理或错误处理。将脚本放在try块中,并在catch块中编写自定义错误消息。

SplashActivity

如果你的脚本没有执行,那么它将是使用$ error object跳转catch块和访问消息。

有什么好处?好处是整个脚本不会停止执行。它将继续其他块。