我试图在文件不存在的情况下使用异常处理。例如,当我运行模型方法并传递一个字符串usr(我知道没有带有该名称的文件)。它给我以下错误消息
Fatal error: Uncaught exception 'Exception' with message 'Usr.php was not found' in /app/core/controller.php on line 14
我无法弄清楚这里有什么不对。有人可以帮我解决这个问题吗?
以下是我的代码。非常感谢!
class Controllers{
public function model($model){
if(!file_exists("../app/models/".$model.".php")) {
throw new exception("{$model}.php was not found");
}
try {
require ("../app/models/".$model.".php");
} catch(Exception $e) {
echo $e->getMessage();
}
return new $model();
}
}
答案 0 :(得分:0)
你不能在不抓住它的情况下抛出异常;这会自动导致PHP脚本崩溃。因此,您需要在try-catch块中包围整个函数,否则“未找到模型”异常将被删除。你的代码应该是这样的:
<?php
class Controllers {
public function model($model){
try {
if (!file_exists("../app/models/".$model.".php")) {
throw new Exception("{$model}.php was not found");
}
require ("../app/models/".$model.".php");
} catch(Exception $e) {
echo $e->getMessage();
}
return new $model();
}
}
答案 1 :(得分:0)
别介意!我发现我需要在调用我的方法的文件中使用try / catch块
实施例..
class Home extends Controllers{
public function index($name = ""){
try{
$user = $this->model('Usr');
}catch (Exception $e){
echo $e->getMessage();
}
//var_dump($user);
}