PDA

View Full Version : مدیریت خطاها



mohsen_metn
شنبه 01 مرداد 1390, 13:55 عصر
سلام
من بوسیله فایل Global.asax و در قسمتApplication_Error کدی رو قرار دادم تا در صورت بروز خطا در برنامه به یک صفحه مشخص منتقل شود.

Response.Redirect("ErrorPage.aspx")

ولی این کد درست عمل نمی کند. مثلا من به صورت عمدی در رویداد ان کلیک یک دکمه کد زیر را قرار دادم ک

Dim s As Integer = Convert.ToInt16("DDD")

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

mohsen_metn
دوشنبه 03 مرداد 1390, 10:26 صبح
هیچ کس نمی تواند کمک کند؟

B@H@2R
دوشنبه 03 مرداد 1390, 10:50 صبح
دوست عزیز اگه درست متوجه شده باشم کاری که شما کردید تست درستی نیست و این خطا به هنگام load صفحه اتفاق می افته و برای همین به صفحه مورد نظر نمیره.
برای تست بیا و یه textBox بذار و یه متغییر int تعریف کن و توی اجرای برنامه مقدار کاراکتر وارد کن و اون وقت ببین پاس داده میشه یا نه.
منظورم اینه که بذار خطا از طرف کاربر باشه نه برنامه نویس

Saman Hashemi
دوشنبه 03 مرداد 1390, 11:00 صبح
لين هاي زير نگاه كن شايد كمكت كنه
لينك 1 (http://www.developer.com/net/asp/print.php/961301)
لينك 2 (http://www.15seconds.com/issue/030102.htm)
لينك 3 (http://aspnetresources.com/articles/CustomErrorPages)

mohsen_metn
دوشنبه 03 مرداد 1390, 11:02 صبح
دوست عزیز اگه درست متوجه شده باشم کاری که شما کردید تست درستی نیست و این خطا به هنگام load صفحه اتفاق می افته و برای همین به صفحه مورد نظر نمیره.
برای تست بیا و یه textBox بذار و یه متغییر int تعریف کن و توی اجرای برنامه مقدار کاراکتر وارد کن و اون وقت ببین پاس داده میشه یا نه.
منظورم اینه که بذار خطا از طرف کاربر باشه نه برنامه نویس

سلام ممنون از توجه اتان
دوست عزیز این خطا در لود ایجاد نمی شود و با کلیلک یک دکمه ایجاد می شود
لطفا کمک کنید

Javad.Kashi
دوشنبه 03 مرداد 1390, 11:12 صبح
سلام
احتمال بنده اینه که سیستم شما در Local host اجرا می شه و چون مقدار پیش فرض در Custom Error برابر RemoteOnly است پس شما خطای سیستم را مشاهده می کنید.حالا باید در Web.config حالت CustomError را از RemoteOnly به On ( یعنی هم Local و هم Remote) تغییر دهید.مثال:

<customErrors mode ="On" defaultRedirect="~/Error.aspx">
<error statusCode="403" redirect="~/Error.aspx?status=403"/>
<error statusCode="404" redirect="~/Error.aspx?status=404"/>
</customErrors>


یا علی

mohsen_metn
دوشنبه 03 مرداد 1390, 13:57 عصر
لطفا یک نفر راهنمایی بکند
تمام این کار ها رو انجام دادم
ولی نشد

Himalaya
دوشنبه 03 مرداد 1390, 15:32 عصر
سلام.
اول یه BreakPoint بزار ببین اصلا برنامه وارد قسمت Application_Error میشه یا نه.
بعد یه پروژه ساده درست کن ببین با اونم این مشکلو داری یا نه و اگه اونم مشکل داشت پروژت رو بزار اینجا. چون من الان قیقا همین کدا رو تست کردم و مشکلی نداشت

mohsen_metn
سه شنبه 04 مرداد 1390, 10:06 صبح
سلام.
اول یه BreakPoint بزار ببین اصلا برنامه وارد قسمت Application_Error میشه یا نه.
بعد یه پروژه ساده درست کن ببین با اونم این مشکلو داری یا نه و اگه اونم مشکل داشت پروژت رو بزار اینجا. چون من الان قیقا همین کدا رو تست کردم و مشکلی نداشت


سلام
بریک پوینت هم گذاشتم.اگر به یک صفحه ای که وجو ندارد لینک بده وارد قسمت اپلیکیشن ارور می شود ولی در زمانی میخواهم مثلا یک استرینگ غیر عددی را به عدد تبدیل کنم وارد اپلیکیشن اررور نمی شود

Himalaya
سه شنبه 04 مرداد 1390, 13:29 عصر
سلام
احتمالا شما واسه اجرای پروژه هر بار دارید اونو دیباگ میکنید (توسط دکمه Play یا F5) که در این صورت اگه برنامه تو یه خط به Error بخوره اون رو به شما نشون میده که البته با زدن F11 اجرای کدای شما باید ادامه پیدا کنه و وارد کدای Application_Error بشید. یا میتونید صفحه رو دیباگ نکنید و واسه اجرا رو صفحه مورد نظر تو سولوشن کلیک راست کنید و ViewInBrowser رو بزنید. (البته اینا در صورتیه که این مشکل تو Vs باشه)
تو حالت دیباگ

http://amir-ajorlo.ir/MyUpFile/barnamenevis/15.jpg

بعد از زدن F11 یا اجرا توسط ViewInBrowser

http://amir-ajorlo.ir/MyUpFile/barnamenevis/16.jpg