我正在为一个 HTML 设计人员使用 PHP 方法检索内容的项目进行开发。现在,是处理异常的时候了,我们遇到了同时保持 HTML 漂亮、干净和语义以及 PHP 正确的问题。
除非有例外,否则 HTML 模板具有以下内容:
<h2 class="title"><?php Content::getTitle() ?></h2>
现在,如果我们想处理异常,我们应该这样写:
<h2 class="title">
<?php
try {
Content::getTitle();
} catch (Exception $e) {
echo $e->getMessage();
}
?>
</h2>
这一点都不干净。
或者
<?php
try {
// THE WHOLE TEMPLATE RENDERING!!!
} catch (Exception $e) {
echo $e->getMessage();
}
?>
这是不可接受的,因为当它应该报告问题并继续时,它会在任何异常时停止渲染。
因此,我们正在考虑将 try/catch 的内容放入方法本身:
class Content {
public static function getTitle {
try {
if (something==happened) throw new Exception 'OMG!';
else {
DoTheJob();
}
} catch (Exception $e) {
echo $e->getMessage();
}
}
它现在似乎起作用了,所以问题是:这是一个好习惯吗?有没有更好更干的替代品?