如何检查文件是否存在异常处理

时间:2014-09-27 13:37:50

标签: php

我试图在文件不存在的情况下使用异常处理。例如,当我运行模型方法并传递一个字符串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();
    }
}

2 个答案:

答案 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);
    }