Redirect Kohana 3.3:如何在Try…Catch块中处理重定向
KO 3.3中的新功能是HTTP::redirect方法,它通过抛出HTTP_异常_302来工作,该异常会冒泡并由系统处理以执行实际的重定向 我的问题是:如果在Redirect Kohana 3.3:如何在Try…Catch块中处理重定向,redirect,try-catch,kohana,kohana-3.3,Redirect,Try Catch,Kohana,Kohana 3.3,KO 3.3中的新功能是HTTP::redirect方法,它通过抛出HTTP_异常_302来工作,该异常会冒泡并由系统处理以执行实际的重定向 我的问题是:如果在try…catch块中调用重定向,如何在不捕获其异常的情况下执行重定向 e、 g: 这不会导致重定向,因为通用异常处理程序将捕获它。我如何避免这种情况?在捕捉异常时,不要太随意。抓住你所期望的,别无其他。这个问题不应该存在。如果我错了,请纠正我,但这正是我在这种情况下所做的吗?不,你在这方面很自由:catch(Exception$e)。您
try…catch
块中调用重定向,如何在不捕获其异常的情况下执行重定向
e、 g:
这不会导致重定向,因为通用异常处理程序将捕获它。我如何避免这种情况?在捕捉异常时,不要太随意。抓住你所期望的,别无其他。这个问题不应该存在。如果我错了,请纠正我,但这正是我在这种情况下所做的吗?不,你在这方面很自由:
catch(Exception$e)
。您有一个人为的示例,其中抛出了一个异常
。抛出一个不太通用的异常。可行的话,我只需要在我的try…catch
循环中添加一个额外的catch
try {
if($var === TRUE){
HTTP::redirect(URL::site($_REQUEST['redirect_uri']));
}else{
throw new Exception('Error');
}
}
catch(HTTP_Exception_Redirect $e) {
// just rethrow it
throw $e;
}
catch(Exception $e) {
$this->template->errors[] = $e->getMessage();
}
try {
if($var === TRUE){
HTTP::redirect(URL::site($_REQUEST['redirect_uri']));
}else{
throw new Exception('Error');
}
}
catch(HTTP_Exception_Redirect $e) {
// just rethrow it
throw $e;
}
catch(Exception $e) {
$this->template->errors[] = $e->getMessage();
}