Home >Backend Development >PHP Tutorial >PHP中try.catch与return的执行顺序

PHP中try.catch与return的执行顺序

WBOY
WBOYOriginal
2016-06-23 13:52:311987browse

try {      $pdo->begintransaction();      foreach ($sql_arr as $sql) {            $stmt = $pdo->exec($sql);      }      $pdo->commit();      return true;} catch (Exception $e) {      echo $e->getMessage();      $pdo->rollBack();      return false;}


如上。请熟悉的大神帮忙解释一下,php语言里面,try catch语句中如果有return,执行顺序是什么?
上面这段代码,想要的是:pdo事物正常运行返回true,若有异常返回false,请问能否正常实现?


回复讨论(解决方案)

你这样写的就是:正常运行返回true,若有异常返回false

但一定要设置属性项 PDO::ATTR_ERRMODE 为 PDO::ERRMODE_EXCEPTION
否则异常处理无效

还有
Exception $e
要写作
PDOException $e

毛病还不少哦

版主大大已经回答了,我来混分的,一个小例子

$res=test('oo');	if($res){		echo '呵呵';	}	function test($name){		try{			a($name);			return true;		}catch (Exception $e){			echo $e->getMessage();			return false;		}	}		function a($name){		if($name=="xx"){			return true;		}else{			throw new Exception("error");		}	}

你这样写的就是:正常运行返回true,若有异常返回false

但一定要设置属性项 PDO::ATTR_ERRMODE 为 PDO::ERRMODE_EXCEPTION
否则异常处理无效

还有
Exception $e
要写作
PDOException $e

毛病还不少哦


感谢!
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn