2016-12-05 54 views
1

我有这个函数可以得到URLS的状态码,如果提供了一个虚假的URL,它只是通过例外说“假url”。我想处理这个异常,并像404一样对待,该网站已关闭。laravel:异常处理

private function getStatusCode($url) 
    { 
     $response = $this->client->get($url, [ 
      'http_errors' => false 
     ]); 

     return $response->getStatusCode(); 
    } 

我试过这段代码,但没有帮助。我需要你的帮助来弄明白吗?

private function getStatusCode($url) 
    { 
    try{ 
    $response = $this->client->get($url, [ 
     'http_errors' => false 
     ]); 

    return $response->getStatusCode(); 
    }  
    //catch specific exception.... 
    catch(QueryException $e) 
    { 
     //...and do whatever you want 
    return $response;  
    } 

} 

回答

1

你尝试过这件事情与改变程序代码来渲染方法app/Exceptions/Handler.php

public function render($request, Exception $e) 
{ 
    if($this->isHttpException($e)) 
    { 
    switch ($e->getStatusCode()) { 
     // 404 not found 
     case '404': 
     return redirect()->guest('404pageURL'); 
     break; 

     // internal error 
     case '500': 
     return redirect()->guest('500pageURL'); 
     break; 

     default: 
      return $this->renderHttpException($e); 
     break; 
    } 
    } 
    else 
    { 
    return parent::render($request, $e); 
    } 
} 

变化404pageURL500pageURL根据您的需要。不过,我没有测试这个代码,但它应该适合你。