てきとーなブログ

WebException発生時のステータスコードの取り方

C#

C#でHttpWebRequest,HttpWebResponseあたり使ってHTTP通信したときWebサーバが 500 Internal Server Error など返してくるとWebExceptionが発生しますが、このときのステータスコード(500)を取りたいときは以下のようにします。

try {  
  ...  
} catch (WebException e) {  
  statusCode = (int)((HttpWebResponse)e.Response).StatusCode;  
}  

ちなみにWebサーバー落ちてるときも同様にWebException発生しますがe.Response==nullなのでnullチェックは入れておいた方がいいと思います。