مشاوره رایگان
دریافت لینک های دانلود دریافت پستی درب منزل مبلغ کل: تومان
جهت دریافت کد تخفیف به کانال تلگرام مراجعه و یا با پشتیبان آنلاین هماهنگ نمایید

آموزش مدیریت و هندل کردن خطاها در ASP.NET


هندل کردن خطاها در ASP.NET سه جنبه دارد:

  • ردیابی (Tracing) : ردیابی اجرای برنامه در سطح صفحه یا در سطح برنامه کاربردی.
  • هندل کردن خطا (Error Handling) : هندل کردن خطاهای استاندارد یا خطاهای سفارشی در سطح صفحه یا در سطح برنامه کاربردی.
  • اشکال زدایی (Debugging) : پیشروی گام به گام در برنامه ، تعیین break point ها برای تحلیل کد.

در این جلسه ، ما در مورد ردیابی و هندل کردن خطاها بحث خواهیم کرد و در جلسه بعدی در مورد debugging صحبت خواهیم نمود.

برای درک بهتر مفاهیم ، برنامه کاربردی نمونه ای را ایجاد می کنیم. این برنامه یک کنترل Label ، یک لیست dropdown ، و یک link دارد. لیست dropdown ، یک لیست آرایه ای از نقل قول های مشهور را لود می کند و نقل قول انتخاب شده در برچسب پایین نمایش داده می شود. برنامه ، هم چنین یک hyperlink دارد که اشاره به یک لینک ناموجود دارد.

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="errorhandling._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

   <head runat="server">
      <title>
         Tracing, debugging and error handling
      </title>
   </head>
   
   <body>
      <form id="form1" runat="server">
      
         <div>
            <asp:Label ID="lblheading" runat="server" Text="Tracing, Debuggin  and Error Handling">
            </asp:Label>
            
            <br /> <br />
            
            <asp:DropDownList ID="ddlquotes" runat="server" AutoPostBack="True"  onselectedindexchanged="ddlquotes_SelectedIndexChanged">
            </asp:DropDownList>
            
            <br /> <br />
            
            <asp:Label ID="lblquotes" runat="server">
            </asp:Label>
            
            <br /> <br />
            
            <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="mylink.htm">Link to:</asp:HyperLink>
         </div>
         
      </form>
   </body>
   
</html>

کد پشت فایل به صورت زیر می باشد:

public partial class _Default : System.Web.UI.Page
{
   protected void Page_Load(object sender, EventArgs e)
   {
      if (!IsPostBack)
      {
         string[,] quotes = 
         {
            {"Imagination is more important than Knowledge.", "Albert Einsten"},
            {"Assume a virtue, if you have it not" "Shakespeare"},
            {"A man cannot be comfortable without his own approval", "Mark Twain"},
            {"Beware the young doctor and the old barber", "Benjamin Franklin"},
            {"Whatever begun in anger ends in shame", "Benjamin Franklin"}
         };
         
         for (int i=0; i<quotes.GetLength(0); i++)
            ddlquotes.Items.Add(new ListItem(quotes[i,0], quotes[i,1]));
      }
   }
   
   protected void ddlquotes_SelectedIndexChanged(object sender, EventArgs e)
   {
      if (ddlquotes.SelectedIndex != -1)
      {
         lblquotes.Text = String.Format("{0}, Quote: {1}", ddlquotes.SelectedItem.Text, ddlquotes.SelectedValue);
      }
   }
}

ردیابی

برای فعال کردن ردیابی در سطح صفحه ، نیاز داریم که دایرکتیو Page را اصلاح کرده و یک صفت Trace را مطابق کد زیر به آن اضافه نماییم:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
   Inherits="errorhandling._Default" Trace ="true" %>

اکنون ، وقتی که فایل اجرا می شود ، می توانیم اطلاعات tracing را دریافت نماییم:

Tracing اطلاعات زیر را در بخش فوقانی ارائه می دهد:

  • Session ID (شناسه جلسه)
  • Status Code (کد وضعیت)
  • Time of Request (زمان درخواست)
  • Type of Request (نوع درخواست)
  • Request and Response Encoding (کدگذاری درخواست و پاسخ)

کد وضعیت ارسال شده از سرور ، هر بار که صفحه درخواست می شود ، نام و زمان بروز خطا را نشان می دهد. جدول زیر کد های وضعیت HTTP متداول را نشان می دهد:.

شماره

توضیحات

اطلاعاتی (100-199)

100

ادامه دادن (continue)

101

پروتکل های سوئیچینگ

موفقیت (200-299)

200

OK

204

بدون محتوا

هدایت مجدد (300-399)

301

انتقال به طور دائمی

305

استفاده از پروکسی

307

تغییر مسیر موقت

خطاهای کلاینت (400-499)

400

درخواست بد

402

درخواست پرداخت

404

پیدا نشدن

408

اتمام مهلت درخواست

417

اجرای ناموفق

خطاهای سرور (500-599)

500

خطای داخلی سرور

503

در دسترس نبودن سرور

505

پشتیبانی نشدن ورژن HTTP

در پایین اطلاعات فوقانی ، Trace log وجود دارد که جزئیات چرخه حیات صفحه را ارائه می کند. این جزئیات زمان سپری شده به ثانیه را از وقتی که صفحه راه اندازی شده است ، ارائه می دهد.

در بخش بعدی درخت کنترل قرار دارد ، که تمام کنترل های صفحه را در یک ساختار سلسله مراتبی لیست ارائه می کند:

در آخر ، در بخش خلاصه وضعیت Application و Session ، کوکی ها و مجموعه هدرها ، لیستی از متغیرهای سرور وجود دارد.

شیء Trace این امکان را به ما می دهد که اطلاعات سفارشی را به خروجی trace اضافه نماییم. این شیء ، دو متد برای انجام دادن این کار دارد: متد Write و متد Warn . هندلر رویداد Page_Load را برای بررسی کردن متد Write به صورت زیر تغییر می دهیم:

protected void Page_Load(object sender, EventArgs e)
{
   Trace.Write("Page Load");
   
   if (!IsPostBack)
   {
      Trace.Write("Not Post Back, Page Load");
      string[,] quotes = 
      .......................
   }
}

برنامه را اجرا نمایید تا اثرات زیر را مشاهده کنید:

برای بررسی کردن متد Warn ، اجازه دهید به اجبار ، چند کد اشتباه را در ایندکس  انتخاب شده مربوط به هندلر رویداد تغییر یافته وارد نماییم:

try
{
   int a = 0;
   int b = 9 / a;
}catch (Exception e)
{
   Trace.Warn("UserAction", "processing 9/a", e);
}

 

Try-Catch یک ساختار برنامه نویسی C# می باشد. بلوک try هر کدی را که ممکن است خطا را تولید نماید ، نگه می دارد و بلوک catch ، خطاها را می گیرد. هنگامی که برنامه اجرا می شود ، این ساختار هشداری را در trace log ارسال می کند.

ردیابی سطح برنامه ، برای تمام صفحات در وب سایت اعمال می شود. این نوع ردیابی از طریق اعمال خطوط کد زیر در فایل web.config پیاده سازی می شود:

<system.web>
   <trace enabled="true" />
</system.web>

هندل کردن خطاها

اگر چه ASP.NET می تواند خطاهای runtime را حذف نماید ، هنوز برخی از خطاهای ظریف ممکن است در اینجا باقی مانده باشد. مشاهده خطاهای ردیابی برای توسعه دهندگان معنادار است نه برای کاربران.

از این رو، برای رفع چنین وقایعی ، می توانیم تنظیمات error handling را در فایل web.config برنامه اضافه نماییم. این کار application-wide error handling می باشد. برای مثال ، ما می توانیم خطوط زیر را در فایل web.config اضافه نماییم:

<configuration>
   <system.web>
   
      <customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
         <error statusCode="403" redirect="NoAccess.htm"	/>
         <error statusCode="404" redirect="FileNotFound.htm" />
      </customErrors>
      
   </system.web>
<configuration>

بخش <customErrors> دارای صفت های زیر می باشد:

  • Mode : این صفت ، صفحات خطای سفارشی را فعال یا غیرفعال می سازد و می تواند سه مقدار زیر را داشته باشد:
    • On : صفخات سفارشی را نمایش می دهد.
    • Off : صفحات خطا (صفحات زرد رنگ) ASP.NET را نمایش می دهد.
    • remteOnly : این مقدار ، خطاهای سفارشی کلاینت و خطاهای محلی ASP.NET را نمایش می دهد.
  • defaultRedirect : این صفت ، حاوی URL صفحه ای می باشد که در مواردی که خطاها هندل نمی شوند ، نمایش داده می شود.

برای قرار دادن صفحات خطای سفارشی در انواع مختلف خطاها ، sub tag مربوط به <error> در مواردی که صفحات خطاهای مختلف بر اساس کد وضعیت خطاها مشخص می شوند ، مورد استفاده قرار می گیرد.

برای پیاده سازی کردن عملیات error handling در سطح صفحه ، دایرکتیو Page می تواند به صورت زیر اصلاح شود:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs"
   Inherits="errorhandling._Default" Trace ="true" ErrorPage="PageError.htm" %>

از آن جای که اشکال زدایی نمودن در ASP.NET مبحث مهمی می باشد ، در جلسه جداگانه ای در مورد آن بحث خواهیم نمود.

 

 

فصلِ: 5 , تعداد قسمت ها: 176 , سطح: صفر تا صد

این فصل در یک نگاه:

در این فصل پس از بررسی سیستم مسیریابی و طراحی صفحه نمایش ویدیو ها، به سراغ پنل کاربری خواهیم رفت و مباحث Model Binding و…

توجه: این دوره آموزشی به صورت پیوسته بر اساس آخرین نسخه ی ASP.NET Core بروزرسانی خواهد شد.   آموزش صفر تا صد طراحی سایت اشتراک ویدیو مشابه آپارات با استفاده از  ASP.NET CORE  MVC 3.0 و V…
فصلِ: 8 , تعداد قسمت ها: 357 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: در این مجموعه قصد داریم تا فروشگاه اینترنتی دیجی کالا رو با Asp.Net Core3 پیاده سازی کنیم. ابتدا طراحی قالب دیجی کالا رو به صورت کامل انجام خواهیم داد. در مرحله میریم …
فصلِ: 5 , تعداد قسمت ها: 135 , سطح: صفر تا صد

این فصل در یک نگاه:

توضیحات کلی مجموعه: در این مجموعه آموزشی، با استفاده از جدیدترین تکنولوژی ها و ابزار های مایکروسافت (دات نت)، به یک پروژه جذاب مدیریت آگهی مشابه دیوار می پردازیم. این آموزش در دو بخش کلی و…
فصلِ: 7 , تعداد قسمت ها: 153 , سطح: صفر تا صد
موضوعات: آموزش ASP.NET

این فصل در یک نگاه:

در این دوره به آموزش صفر تا صد جدیدترین نسخه ASP یعنی CORE جدیدترین ورژن خواهیم پرداخت.این آموزش از سطح مقدماتی تا فوق …

دوره آموزش کامل طراحی وب به همراه پروژه ساخت سیستم مدیریت کتابخانه  این دوره  با کور 1 آغاز می شود و در ادامه پروژه به کور 2 تبدیل می شودو پروژه نهایی (سیستم مدیریت کتابخانه) با Asp.net کور…
فصلِ: 1 , تعداد قسمت ها: 5 , سطح: متوسط

این فصل در یک نگاه:

ساخت محیط کاربریآموزش نحوه ی ارسال ایمیل در Asp.net MVCآموزش تنظیمات Gmail برای استفادهاستفاده از Yahooاستفاده از سرویس …

به نام خدا... در خدمتتون هستم با آموزش ارسال ایمیل در Asp.net MVC... ارسال ایمیل یکی از اجزای اصلی ییک سایت به شمار می رود و واقعا سایتی که برای اجزای مختلفش همانند ثبت کاربر جدید و یا ارسال…
فصلِ: 2 , تعداد قسمت ها: 62 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل دوم در یک نگاه:فصل دوم در یک نگاه:…

در این پکیج به مبحث طراحی وب ، در قالب ساخت یک سایت فروشگاهی 5040 به آدرس http://5040.ir می پردازیم که به جرات مشهورترین و یکی از برترین فروشگاه های مجازی در کشور است. در این مجموعه قصد داری…
فصلِ: 4 , تعداد قسمت ها: 78 , سطح: متوسط

این فصل در یک نگاه:

در این دوره آموزشی، وبسایت ورزش3 را با استفاده از ASP.NET Core پیاده سازی می کنیم و همچنین اپ اندروید آن را هم با Xamarin متصل به سرور سایت طراحی و در نهایت نحوه انتشار آن در مارکت هایی مثل …
فصلِ: 1 , تعداد قسمت ها: 14 , سطح: متوسط

این فصل در یک نگاه:

کاملترین آموزش هاست و کار با سی پنل.در هنگام خرید سرویس هاست کلمه ای به نام “کنترل پنل” را زیاد خواهید دید آیا تا به حال…

سی پنل یک کنترل پنل هاست محبوب و معروف در جهان و ایران است. در فیلم آموزش سی پنل هم توصیه اکید شده تا افراد مبتدی و حتی افراد حرفه ای از این کنترل پنل هاست سی پنل استفاده کنند. آموزش cpanel …
فصلِ: 5 , تعداد قسمت ها: 25 , سطح: صفر تا صد

این فصل در یک نگاه:

فصل پنجم…

توضیحات کلی مجموعه: درباره گیت: لذت پیش بردن پروژه های برنامه نویسی خود را با بهترین ورژن کنترل سیستم جهان تجربه کنید کامل ترین دوره ی آموزشی گیت و گیت هاب به همراه مثال های کاربردی گی…
فصلِ: 1 , تعداد قسمت ها: 15 , سطح: متوسط

این فصل در یک نگاه:

رشد و درآمدزایی یک وب سایت یا کسب و کار اینترنتی کاملا به ذوق و مهارت وب مستر یا همان مدیر اصلی وب سایت گره خورده و متاس…

 اصول مدیریت وب سایت برای وب مستر شدن برای موفقیت یک وب سایت لازم الاجراست. زیرا شما دوست دارید وب سایت خود را به کارخانه پولسازی تبدیل کنید. این واقعیت رویا نیست. هرکس این اصول را بداند به …

تولید شده توسط کلیک سایت

پشتیبانی آنلاین
آماده پاسخگویی هستیم
انتخاب تصویر جهت ارسال:
در حال ضبط صدا

(جهت توقف و یا لغو ضبط از دکمه های زیر استفاده کنید)

توقف و ارسال :
لغو ضبط
در حال حاضر تمامی کارشناسان آفلاین هستند. همواره می توانید با شماره تلگرام / واتساپ 09010005000 به صورت آنلاین با ما در ارتباط باشید. جهت ورود به واتساپ کلیک کنید
0 پیام جدید
پشتیبان در حال تایپ ...
ارسال تصویر ضبط صدا
0 کارشناسان آنلاین می باشند
این گفت و گو توسط پشتیبان به اتمام رسید