quindi dici che è meglio non utilizzarlo in questo caso?
CodeIgniter è un pessimo framework per chi usa OOP. Idealmente dovrebbe essere la classe che gestisce la comunicazione con il database a lanciare una eccezione quando qualcosa va storto.

La documentazione di CI è chiara: https://ellislab.com/codeigniter/use...al/errors.html
Usa `show_error` quando qualcosa va storto. Non lanciare eccezioni.

codice:
if(!$this->my_model->getRecord()) {
    show_error("Item not found", 404);
}
codice:
$data = $this->db->get('table');
if(!$data) {
    show_error("Something went wrong", 500);
}
Programmazione procedurale: a qualcuno piace, a qualcun'altro no. Io sono in quest'ultima categoria.