فهرست سرفصل‌های ASP
خانه (HOME) معرفی (WebPages Intro) ریزر (WebPages Razor) چیدمان (WebPages Layout) پوشه ها (WebPages Folders) گلوبال (WebPages Global) فرم ها (WebPages Forms) اشیا (WebPages Objects) فایل ها (WebPages Files) پایگاه داده ها (WebPages Databases) هلپرها (WebPages Helpers) وب گرید (WebPages WebGrid) نمودارها (WebPages Charts) ایمیل (WebPages Email) امنیت (WebPages Security) انتشار (WebPages Publish) نمونه ها (WebPages Examples) کلاس ها (WebPages Classes) معرفی (Razor Intro) سینتکس (Razor Syntax) متغیرها (Razor C# Variables) حلقه ها (Razor C# Loops) منطق (Razor C# Logic) متغیرها (Razor VB Variables) حلقه ها (Razor VB Loops) منطق (Razor VB Logic) معرفی (ASP Intro) سینتکس (ASP Syntax) متغیرها (ASP Variables) رویه ها (ASP Procedures) شرط ها (ASP Conditionals) حلقه ها (ASP Looping) فرم ها (ASP Forms) کوکی ها (ASP Cookies) نشست (ASP Session) برنامه (ASP Application) اینکلود (#include) (ASP #include) Global.asa (ASP Global.asa) AJAX (ASP AJAX) ایمیل (ASP e-mail) نمونه ها (ASP Examples) گواهینامه (ASP Certificate) توابع VB (ASP VB Functions) کلیدواژه های VB (ASP VB Keywords) Response (ASP Response) Request (ASP Request) Application (ASP Application) Session (ASP Session) Server (ASP Server) Error (ASP Error) FileSystem (ASP FileSystem) TextStream (ASP TextStream) Drive (ASP Drive) File (ASP File) Folder (ASP Folder) Dictionary (ASP Dictionary) AdRotator (ASP AdRotator) BrowserCap (ASP BrowserCap) پیوند محتوا (ASP Content Linking) گرداننده محتوا (ASP Content Rotator) راهنمای سریع (ASP Quick Ref) معرفی (ADO Intro) اتصال (ADO Connect) رکوردست (ADO Recordset) نمایش (ADO Display) کوئری (ADO Query) مرتب سازی (ADO Sort) افزودن (ADO Add) به روزرسانی (ADO Update) حذف (ADO Delete) فرمان (ADO Command) اتصال (ADO Connection) خطا (ADO Error) فیلد (ADO Field) پارامتر (ADO Parameter) ویژگی (ADO Property) رکورد (ADO Record) رکوردست (ADO Recordset) جریان (ADO Stream) انواع داده (ADO DataTypes)
نتیجه‌ای برای جستجو یافت نشد.
ASP

ASP — Error (ASP Error)

آخرین بروزرسانی: 1404/08/14

Error (ASP Error)

در این بخش با «آبجکت خطا در ASP (ASPError)» آشنا می شویم. آبجکت (Object) یعنی موجودی با ویژگی ها و متدها. این آبجکت گزارش خطا را می دهد. سپس با Server.GetLastError آن را می گیریم و جزئیات خطا را می خوانیم.

مدیریت خطا در ASP با ASPError

ASPError از نسخه 3.0 اضافه شد و روی IIS5 به بعد کار می کند. این آبجکت فقط وقتی ساخته می شود که Server.GetLastError() را صدا بزنیم. سپس می توانیم ویژگی هایی مثل خط، ستون، فایل و توضیح را بخوانیم.

نمونه خواندن جزئیات خطا

در این مثال، خطا را می گیریم و چند ویژگی مهم را نمایش می دهیم. ویژگی (Property) یعنی مقدارِ فقط خواندنیِ اطلاعات خطا.

<%
// ASP JScript
var err = Server.GetLastError();
if (err != null) {
  Response.Write("File: " + err.File + "<br/>");
  Response.Write("Line: " + err.Line + "<br/>");
  Response.Write("Column: " + err.Column + "<br/>");
  Response.Write("Category: " + err.Category + "<br/>");
  Response.Write("ASPCode: " + err.ASPCode + "<br/>");
  Response.Write("Number: " + err.Number + "<br/>");
  Response.Write("Description: " + err.Description + "<br/>");
  Response.Write("Source: " + Server.HTMLEncode(err.Source) + "<br/>");
}
%>

مشاهده در ادیتور

گام های عملی مدیریت خطا

  1. ابتدا صفحه خطادار را شناسایی کن.
  2. سپس در صفحه مدیریت خطا، Server.GetLastError() را صدا بزن.
  3. بعد ویژگی ها را بخوان و لاگ کن.
  4. در پایان، متن خطا را به صورت امن چاپ کن.

نمایش امن متن خطا

نمایش مستقیم کد منبع خطرناک است. با Server.HTMLEncode آن را امن کن. Encode یعنی تبدیل متن برای نمایش امن.

<%
// ASP JScript
var err = Server.GetLastError();
if (err != null) {
  var safeSource = Server.HTMLEncode(err.Source);
  Response.Write("Safe Source: " + safeSource + "<br/>");
}
%>

مشاهده در ادیتور

جدول ویژگی های مهم

طبق منبع، ویژگی ها فقط خواندنی هستند: ASPCode، ASPDescription، Category، Column، Description، File، Line، Number، Source. هرکدام یک تکه از پازل خطا را نشان می دهند.

نکته: اگر خطایی نیست، GetLastError() مقدار null برمی گرداند. همیشه قبل از دسترسی، چک کن.

لینک های مرتبط داخلی

برای کارهای سروری، صفحه Server را ببین. همچنین برای فایل ها، صفحه FileSystem مفید است. برای مطالعه کامل این مبحث، از لینک آبجکت خطا در ASP استفاده کن.

جمع بندی سریع

  • ASPError با GetLastError ساخته می شود.
  • همه ویژگی ها فقط خواندنی هستند.
  • برای امنیت، از HTMLEncode کمک بگیر.
  • خط، ستون و فایل را همیشه لاگ کن.
  • روی IIS5 به بعد در دسترس است.