พิจารณาชั้นเรียนเล็ก ๆ ที่มีประโยชน์นี้:
class FunkyFile {               
    private $path;
    private $contents = null;
    public function __construct($path) { 
        $this->setPath($path); 
    }
    private function setPath($path) {
        if( !is_file($path) || !is_readable($path) ) 
            throw new \InvalidArgumentException("Hm, that's not a valid file!");
        $this->path = realpath($path);
        return $this; 
    }
    public function getContents() {
        if( is_null($this->contents) ) {
            $this->contents = @file_get_contents( $this->path );
            if($this->contents === false) 
                throw new \Exception("Hm, I can't read the file, for some reason!");                                 
        }
        return $this->contents;            
    }
}
นั่นเป็นการใช้ข้อยกเว้นอย่างสมบูรณ์แบบ จากFunkyFile'sมุมมองไม่มีอะไรที่สามารถทำได้เพื่อแก้ไขคำนามหากเส้นทางไม่ถูกต้องหรือfile_get_contentsล้มเหลว สถานการณ์ที่ยอดเยี่ยมอย่างแท้จริง;)
แต่มีค่าสำหรับผู้ใช้ของคุณที่จะรู้ว่าคุณได้สะดุดกับเส้นทางของไฟล์ที่ไม่ถูกต้องที่ไหนสักแห่งในรหัสของคุณ? ตัวอย่างเช่น:
class Welcome extends Controller {
    public function index() {
        /**
         * Ah, let's show user this file she asked for
         */                 
        try {
            $file = new File("HelloWorld.txt");
            $contents = $file->getContents();   
            echo $contents;
        } catch(\Exception $e) {
            log($e->getMessage());
            echo "Sorry, I'm having a bad day!"; 
        }                           
    }        
}
นอกเหนือจากการบอกคนที่คุณกำลังมีวันที่แย่ตัวเลือกของคุณคือ:
- รั้งท้าย - คุณมีวิธีรับข้อมูลอีกวิธีหนึ่งหรือไม่ ในตัวอย่างง่าย ๆ ของฉันข้างต้นดูเหมือนว่าจะไม่เกิดขึ้น แต่ให้พิจารณาสคีมาฐานข้อมูลหลัก / ทาส นายอาจจะล้มเหลวในการตอบโต้ แต่บางทีทาสก็ยังอยู่ที่นั่น (หรือกลับกัน) 
- มันเป็นความผิดของผู้ใช้หรือไม่? - ผู้ใช้ส่งข้อมูลผิดพลาดหรือไม่? บอกเธอเกี่ยวกับเรื่องนี้ คุณสามารถเห่าข้อความข้อผิดพลาดหรือจะดีและมาพร้อมกับข้อผิดพลาดที่มีรูปแบบเพื่อให้เธอสามารถพิมพ์ในเส้นทางที่ถูกต้อง 
- มันเป็นความผิดของคุณเหรอ? - และโดยคุณฉันหมายถึงทุกอย่างที่ไม่ใช่ผู้ใช้ดังนั้นตั้งแต่คุณพิมพ์เส้นทางของไฟล์ผิดไปจนถึงสิ่งที่ผิดปกติในเซิร์ฟเวอร์ของคุณ พูดอย่างเคร่งครัดถึงเวลาแล้วที่จะมีข้อผิดพลาด 503 HTTPเช่นกันบริการไม่พร้อมใช้งาน CI มีฟังก์ชั่นที่คุณสามารถสร้าง- show_404()- show_503()
 
คำแนะนำคุณควรคำนึงถึงข้อยกเว้นอันธพาล CodeIgniter เป็นโค้ดที่ยุ่งเหยิงและคุณไม่มีทางรู้ว่าข้อยกเว้นจะปรากฏขึ้นเมื่อใด ในทำนองเดียวกันคุณอาจลืมข้อยกเว้นของคุณเองและตัวเลือกที่ปลอดภัยที่สุดคือการใช้ตัวจัดการข้อยกเว้นทั้งหมด ใน PHP คุณสามารถทำได้ด้วยset_exception_handler :
function FunkyExceptionHandler($exception) {
    if(ENVIRONMENT == "production") {
        log($e->getMessage());
        show_503();
    } else {
        echo "Uncaught exception: " , $exception->getMessage(), "\n";
    }   
}
set_exception_handler("FunkyExceptionHandler");
และคุณยังสามารถดูแลข้อผิดพลาดโกงผ่านset_error_handler คุณสามารถเขียนตัวจัดการเดียวกันกับข้อยกเว้นหรือแปลงข้อผิดพลาดทั้งหมดเป็นErrorExceptionและให้ตัวจัดการข้อยกเว้นของคุณจัดการกับพวกเขา:
function FunkyErrorHandler($errno, $errstr, $errfile, $errline) {
    // will be caught by FunkyExceptionHandler if not handled
    throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler("FunkyErrorHandler");