Rumah >pembangunan bahagian belakang >tutorial php >PHP中try.catch与return的执行顺序

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

WBOY
WBOYasal
2016-06-23 13:52:311964semak imbas

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

毛病还不少哦


感谢!
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:自定义函数名Artikel seterusnya:strrchr() 函数返回结果有时不对?