2017-01-23 10 views
0

は私がGlobal.asaxの例外がOracle例外であるかどうかをチェックする方法は?

コードは、より具体的であるように思わののApplication_Error関数のコードの一部、次のアプリケーションlevel.Hence書かれた上の任意のOracle Dbの例外を処理したいが、私は、Oracleの例外のいずれかの種類のコードを書きたいです。

protected void Application_Error(object sender, EventArgs e) 
{ 
    var isOracleException = false; 
    //Get the error details. 
    Exception lastException = Server.GetLastError(); 
    if (lastException != null) 
    { 
     if (lastException.Message.StartsWith("ORA")) 
     { 
      isOracleException = true;  
     } 
    } 
    HttpContext httpContext = (sender as MvcApplication).Context; 
    httpContext.ClearError(); 
    httpContext.Response.Clear(); 
    httpContext.Response.TrySkipIisCustomErrors = true; 
    RouteData routeData = new RouteData(); 
    if (isOracleException) 
    { 
     routeData.Values["controller"] = "HandleError"; 
     routeData.Values["action"] = "Error"; 

     IController errorController = new HandleErrorController(); 
     var requestContext = new RequestContext(new HttpContextWrapper(httpContext), routeData); 
     errorController.Execute(requestContext); 
    } 
} 

Global.asaxファイルでOracleException Classにアクセスできますか?

+0

しかし、どのように? – SantyEssac

答えて

0

例外がisasを使用してOracleExceptionであるかどうかをチェックすることができます:

if (lastException is OracleException) 
{ 
    isOracleException = true; 
    // or 
    // do something 
} 

または:

OracleException oex = lastException as OracleException; 

if (oex != null) 
{ 
    // do something with oex 
} 
+0

ここでOracleException dllを追加できません – SantyEssac

+0

OracleExceptionクラスの参照を追加する方法はありますか? – SantyEssac

+0

なぜでしょうか???????? –

関連する問題