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/>");
}
%>
گام های عملی مدیریت خطا
- ابتدا صفحه خطادار را شناسایی کن.
- سپس در صفحه مدیریت خطا،
Server.GetLastError()را صدا بزن. - بعد ویژگی ها را بخوان و لاگ کن.
- در پایان، متن خطا را به صورت امن چاپ کن.
نمایش امن متن خطا
نمایش مستقیم کد منبع خطرناک است. با 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 به بعد در دسترس است.