【发布时间】:2015-11-17 14:15:19
【问题描述】:
我读过的很多教程和书籍都使用 die() 方法在与本地 MySQL 数据库交互时捕获异常
例如:
mysql_connect($dbhost, $dbuser, $dbpass)or die(mysql_error());
try/catch 块是否比 die() 方法更有益,或者这只是异常处理与数据库连接一起工作的标准方式?
【问题讨论】:
-
当您使用 try/catch 时,您将使用 throw new Exception() 而不是 die()跨度>
-
try/catch允许您干净地处理异常,而die()是突然的,很少允许您显示用户友好的消息.....但mysql_connect不会抛出任何异常,并且MySQL_*函数已被弃用,并且在 PHP 中将不再存在 -
不,你可以写你喜欢的方式来处理这个异常 (stackoverflow.com/a/9836727/3615630)
-
在开发中使用 die。如果您在 Travelocity 预订航班,您会怎么想?另外,你到底为什么要使用 mysql_* 函数?现在是 21 世纪 :>
-
更正:很多不好的教程和书籍使用
die()。连接到数据库的代码的工作不是决定应用程序何时结束或当数据库不可访问时它如何反应。忘记die(),你不需要它。exit()(真名die())需要的地方就在header('Location:');之后,如果你不使用框架并手动处理这些事情。除此之外,exit()的使用是一种代码味道。
标签: php mysql exception-handling