本文目录一览:
- php 的try在什么时候用?
- php try catch 起什么作用
- PHP中try{}什么意思?怎么用?为什么后面加else
- 在php中,try{}catch(Exception $e){} 那个$e是什么意思
- php中的try和catch是什么意思?
- 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是什么意思
$e
是 Exception
(异常) 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 -> 3
。finally
中的代码和return
是没关系的,你可以把return
写在任何地方。它只和try
或catch
有关。假如你把问题一种finally
的代码写成:
finally {
return ++$x;
}
那么结果就是 2 了。
finally
一定会执行,且在 try
或 catch
之后执行。
不知道这么说能明白吗~~~
不明白可以问,我再回答~~~