Exception дава грешка

  • Автор Автор pro12
  • Начална дата Начална дата

pro12

Registered
Грешката е Fatal error: Class 'Lib\Exception' not found in H:\xamp\htdocs\mvc\lib\Login.php on line 69

Lib е namespace ред 69 е throw new Exception('bb');. Ако променя 69 ред така throw new \Exception('bb'); дава това Fatal error: Uncaught exception 'Exception' with message 'bb' in H:\xamp\htdocs\mvc\lib\Login.php:69 Stack trace: #0 H:\xamp\htdocs\mvc\controllers\Login.php(31): Lib\Login->login('vici_88', '') #1 [internal function]: controllers\Login_Controller->index(Array) #2 H:\xamp\htdocs\mvc\index.php(69): call_user_func_array(Array, Array) #3 {main} thrown in H:\xamp\htdocs\mvc\lib\Login.php on line 69

Как да оправя проблема?
 
Вариант 1: Проверяваш защо ти хвърля ексепшън
Вариант 2: Прихващаш ексепшъна(то това си е задължително) с try-catch блок.
 
Прихващам ексепшъна с try-catch блок.
PHP:
namespace controllers;
$auth = \Lib\Login::get_instance();
       
 		if (!empty ( $_POST['username'] )  ) {
		     $username = $_POST['username'];
                     $password = $_POST['password'];
                     try {
                         $logged_in = $auth->login($username, $password);
                     
                     } catch (Exception $ex) {
                        echo $ex->getMessage(); 
                     }
                     
		}

Точно така го пиша
PHP:
throw new \Exception('bb');
Но ми дава Fatal error: Uncaught exception 'Exception' with message 'bb' in H:\xamp\htdocs\mvc\lib\Login.php:69 Stack trace: #0 H:\xamp\htdocs\mvc\controllers\Login.php(31): Lib\Login->login('vici_88', '') #1 [internal function]: controllers\Login_Controller->index(Array) #2 H:\xamp\htdocs\mvc\index.php(69): call_user_func_array(Array, Array) #3 {main} thrown in H:\xamp\htdocs\mvc\lib\Login.php on line 69
 
PHP:
} catch (Exception $ex) {
Това пак ще търси class Exception в namespace-a controllers.

Замени го с:
PHP:
} catch (\Exception $ex) {
 

Back
Горе