php在try的简单介绍

发布时间:2022-11-15

本文目录一览:

  1. php 的try在什么时候用?
  2. php try catch 起什么作用
  3. PHP中try{}什么意思?怎么用?为什么后面加else
  4. 在php中,try{}catch(Exception $e){} 那个$e是什么意思
  5. php中的try和catch是什么意思?
  6. PHP中try.catch与return的执行顺序,该怎么解决

php 的try在什么时候用?

try() 是作为容错,也就是说如果 try{} 里面的代码出错了,那就执行 catch{} 的内容。 这里的出错有很多,比如常见的 Fatal Error。

php try catch 起什么作用

Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。 Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。 让我们触发一个异常:

// 创建可抛出一个异常的函数
function checkNum($number) {
    if ($number > 1) {
        throw new Exception("Value must be 1 or below");
    }
    return true;
}
// 在 "try" 代码块中触发异常
try {
    checkNum(2);
    // If the exception is thrown, this text will not be shown
    echo 'If you see this, the number is 1 or below';
}
// 捕获异常
catch (Exception $e) {
    echo 'Message: ' . $e->getMessage();
}

例子解释: 上面的代码抛出了一个异常,并捕获了它:

  • 创建 checkNum() 函数。它检测数字是否大于 1。如果是,则抛出一个异常。
  • 在 "try" 代码块中调用 checkNum() 函数。
  • checkNum() 函数中的异常被抛出。
  • "catch" 代码块接收到该异常,并创建一个包含异常信息的对象 ($e)。
  • 通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息。 不过,为了遵循“每个 throw 必须对应一个 catch”的原则,可以设置一个顶层的异常处理器来处理漏掉的错误。

PHP中try{}什么意思?怎么用?为什么后面加else

PHP Try-catch 语句 为了进一步处理异常,我们需要使用 try-catch 语句——包括 Try 语句和至少一个的 catch 语句。任何调用可能抛出异常的方法的代码都应该使用 try 语句。Catch 语句用来处理可能抛出的异常。以下显示了我们处理 getCommandObject() 抛出的异常的方法:

try {
    $mgr = new CommandManager();
    $cmd = $mgr->getCommandObject("realcommand");
    $cmd->execute();
} catch (Exception $e) {
    print $e->getMessage();
    exit();
}

可以看到,通过结合使用 throw 关键字和 try-catch 语句,我们可以避免错误标记“污染”类方法返回的值。因为“异常”本身就是一种与其它任何对象不同的 PHP 内建的类型,不会产生混淆。 如果抛出了一个异常,try 语句中的脚本将会停止执行,然后马上转向执行 catch 语句中的脚本。 如果异常抛出了却没有被捕捉到,就会产生一个 fatal error。 不过只听说过有 try catch 的,没有听说过 try else 的。

在php中,try{}catch(Exception $e){} 那个$e是什么意思

$eException(异常) new 出来的对象,包含 Exception 类中的所有属性方法,所以你才可以在 catch 中写 $e->getMessage() 这样的语句来打印异常信息。

php中的try和catch是什么意思?

Try - 使用异常的函数应该位于 "try" 代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。 Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象。 让我们触发一个异常:

// 创建可抛出一个异常的函数
function checkNum($number) {
    if ($number > 1) {
        throw new Exception("Value must be 1 or below");
    }
    return true;
}
// 在 "try" 代码块中触发异常
try {
    checkNum(2);
    // If the exception is thrown, this text will not be shown
    echo 'If you see this, the number is 1 or below';
}
// 捕获异常
catch (Exception $e) {
    echo 'Message: ' . $e->getMessage();
}

例子解释: 上面的代码抛出了一个异常,并捕获了它:

  • 创建 checkNum() 函数。它检测数字是否大于 1。如果是,则抛出一个异常。
  • 在 "try" 代码块中调用 checkNum() 函数。
  • checkNum() 函数中的异常被抛出。
  • "catch" 代码块接收到该异常,并创建一个包含异常信息的对象 ($e)。
  • 通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息。 不过,为了遵循“每个 throw 必须对应一个 catch”的原则,可以设置一个顶层的异常处理器来处理漏掉的错误。

PHP中try.catch与return的执行顺序,该怎么解决

问题1 输出结果是 1。 问题2 输出结果是 2。 finally 中的语句是一定要执行的,这点是肯定的。finally 中的语句执行在 try 之后。通常 try 是要和 catch(不捕获异常 try 就没意义了)。一般的用法是:

try {
    // 1 想要执行的代码
} catch (Exception e) {
    // 2 异常处理
} finally {
    // 3 最终执行的代码
}
  • 1 中代码没错执行的顺序就是 1 -> 3
  • 1 中代码有错执行的顺序是 2 -> 3finally 中的代码和 return 是没关系的,你可以把 return 写在任何地方。它只和 trycatch 有关。假如你把问题一种 finally 的代码写成:
finally {
    return ++$x;
}

那么结果就是 2 了。 finally 一定会执行,且在 trycatch 之后执行。 不知道这么说能明白吗~~~ 不明白可以问,我再回答~~~