【发布时间】:2014-01-24 06:29:10
【问题描述】:
我正在使用 PHP 5.4.16 运行 WAMSERVER 2.4(32 位),这是一个 Laravel 3 项目。
在我预计会失败的try 块中,我提交了一个重复行以针对唯一性约束进行插入。
它没有处理catch 中的异常,而是从try 块中抛出“未处理的异常” 错误并失败。
// This throws an error if the relationship already exists.
// If that happens, just pass it to the logger and move on.
try {
$entity->$pivotMethod()->attach( $rowData->get_key(), $ext );
} catch (Exception $e) {
$err = $e->getMessage()."\n";
error_log($err);
}
这是它抛出的错误: 未处理的异常
消息:
SQLSTATE[23000]:完整性约束违规:1062 键“唯一”的重复条目 '695d7f0b-53b8-11e3-93fc-c12677e410a5-0-0-14-'
SQL:INSERT INTO
person_contact(person_uuid,phone_id) 值 (?, ?)
绑定:数组(0 => '695d7f0b-53b8-11e3-93fc-c12677e410a5', 1 => 14)位置:C:\path\to\laravel\3_2_13\database\connection.php 263行
【问题讨论】:
-
如果没有抛出异常,它将永远不会到达 catch 块
-
+1 是的!你必须抛出异常
-
您上面的块是否在命名空间内的类中?
-
试试
\Exception而不是Exception -
做到了(命名空间)!谢谢@Machavity 和#DanFromGermany .. 你们太聪明了:)
标签: php mysql exception laravel-3