我有一个名为用户的类,在构建时,在try / catch块中调用自己的方法之一 setUsername()。如果 setUsername()失败,则会抛出异常:
class User {
private $username;
public function __construct($input_username) {
try {
$this->setUsername($input_username);
} catch(Exception $e) {
throw $e;
}
}
private function setUsername($username) {
if(1 != 0)
throw new Exception("1 does not equal 0!!!");
$this->username = $username;
}
}
然后,我在一个外部函数中,在一个单独的文件中,在自己的try / catch块中创建一个新的 User 。它应该捕获从用户类构造函数传递的异常:
namespace UserController;
function createUser(){
try {
$user = new \User('sample-user');
} catch(Exception $e) {
echo $e->getMessage();
}
}
那么,为什么我仍然得到一个" Uncaught Exception"错误?
答案 0 :(得分:0)
我似乎错过了实例化该类的文件顶部的语句,因为它是命名空间的。在命名空间声明之后,需要说:
nueva_plantilla.archivo.save(nombre_archivo, File(open('media/temp/'+ nombre_archivo, 'rb')))