ホームページ  >  記事  >  バックエンド開発  >  ASP.NET Coreの例外とエラー処理(8)_実践的なヒント

ASP.NET Coreの例外とエラー処理(8)_実践的なヒント

微波
微波オリジナル
2017-06-28 14:06:571528ブラウズ

この記事では、主に ASP.NET コア例外と エラー処理 の関連情報を詳しく紹介します。興味のある方は参考にしてください

この章では、例外とエラー処理について説明します。 ASP.NET Core アプリケーションでエラーが発生した場合、さまざまな方法でエラーを処理できます。 ミドルウェアを追加して例外を処理する方法を見てみましょう。このミドルウェアはエラーの処理に役立ちます。

エラーをシミュレートするには、アプリケーションに移動して実行し、例外をスローした場合にプログラムがどのように動作するかを確認してみましょう。

using Microsoft.AspNet.Builder; 
using Microsoft.AspNet.Hosting; 
using Microsoft.AspNet.Http; 
using Microsoft.Extensions.DependencyInjection; 
using Microsoft.Extensions.Configuration; 
namespace FirstAppDemo { 
 public class Startup { 
  public Startup() { 
   var builder = new ConfigurationBuilder() 
   .AddJsonFile("AppSettings.json"); 
   Configuration = builder.Build(); 
  } 
  public IConfiguration Configuration { get; set; } 
   
  // This method gets called by the runtime. 
  // Use this method to add services to the container. 
  // For more information on how to configure your application, 
  // visit http://go.microsoft.com/fwlink/?LinkID=398940 
  public void ConfigureServices(IServiceCollection services) { 
  } 
  
  // This method gets called by the runtime. 
  // Use this method to configure the HTTP request pipeline.
  public void Configure(IApplicationBuilder app) { 
   app.UseIISPlatformHandler(); 
   app.UseRuntimeInfoPage(); 
   
   app.Run(async (context) => { 
   throw new System.Exception("Throw Exception"); 
   var msg = Configuration["message"]; 
   await context.Response.WriteAsync(msg); 
   }); 
  } 
   
  // Entry point for the application. 
  public static void Main(string[] args) => WebApplication.Run<Startup>(args); 
 } 
}

非常に一般的な例外メッセージをスローするだけです。 Startup.cs ページを保存し、アプリケーションを実行します。

このリソースのロードに失敗したことがわかります。 HTTP 500 エラー、内部サーバー エラーが発生し、そのページはあまり役に立ちませんでした。例外情報を取得すると便利な場合があります。

別のミドルウェア UseDeveloperExceptionPage を追加しましょう。

// This method gets called by the runtime. 
// Use this method to configure the HTTP request pipeline. 
public void Configure(IApplicationBuilder app) { 
 app.UseIISPlatformHandler(); 
 app.UseDeveloperExceptionPage(); 
 app.UseRuntimeInfoPage(); 
 
 app.Run(async (context) => { 
  throw new System.Exception("Throw Exception"); 
  var msg = Configuration["message"]; 
  await context.Response.WriteAsync(msg); 
 }); 
}

このミドルウェアは、通常、受信リクエストをリッスンし、リクエストに対する応答を行う他のミドルウェアとは少し異なります。

UseDeveloperExceptionPage は、パイプラインの後半で受信リクエストに何が起こるかについてはあまり気にしません。

次のミドルウェアを呼び出して、パイプラインで例外が発生するかどうかを待機するだけです。例外が発生した場合、このミドルウェアは例外に関するエラー ページを表示します。

それでは、アプリケーションを再度実行してみましょう。これにより、以下のスクリーンショットに示すような出力が生成されます。

これで、プログラムで例外が発生した場合、ページ上に表示したい例外情報が表示されます。スタック トレースも取得できます。ここでは、Startup.cs の 37 行目で未処理の例外がスローされたことがわかります。

この例外情報はすべて開発者にとって非常に役立ちます。実際、これらの例外メッセージは、開発者がアプリケーションを実行するときにのみ表示されるようにしたい場合があります。

以上がASP.NET Coreの例外とエラー処理(8)_実践的なヒントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。