PDA

View Full Version : مشکل با کوری استرینگ



pedram_ns
دوشنبه 20 دی 1389, 11:06 صبح
دوستان سلام

لطفا به کد زیر توجه کنید این یک کد ساده است که چک می کنه آیا مقدار وارد شده در id در کوری استرینگ مقدار عددی است یا خیر.
اگر مقدار غیر عددی بگیره به صفحه page2 میره و اگر مقدار عددی باشه به کار ادامه می ده.

بعد از اون یک شرط گذاشتم که اگر مقدار این کوری صفر بود به صفحه page1 برو این قسمت کار نمی کنه و با وارد کردن صفر به صفحه 2 می ره مثل اینکه در تابع try به ارور بخوره و کد درون catch رو اجرا کنه ولی جالب اینه که اگر تابع try رو بردارم هیچ اروری نمیده و به صفحه مورد نظر (یعنی page1) میره.

به نظرتون مشکل در چیه؟؟؟


Try
Dim did As Integer = Request.QueryString("id")
Int(did = Convert.ToInt32(did))

If did = 0 Then
Response.Redirect("~/page1.aspx")
End If

Catch ex As Exception
Response.Redirect("~/page2.aspx")
End Try

mehrdad85
دوشنبه 20 دی 1389, 12:27 عصر
خوب چرا تبدیل مقدار querystring را داخل try انجام میدی؟
اونو بیرون از try بذار
مشکلت حل میشه

Chabok
دوشنبه 20 دی 1389, 13:13 عصر
با سلام
علت خطا Response.Redirect است.

زیرا بصورت ذاتی یک ThreadAbort Exception رخ میدهد و اگر در Try Catch استفاده کنید این Exception باعث میشه که کد Catch اجرا بشه

توضیحات آقای بهروز راد :
http://barnamenevis.org/showthread.php?113289
http://barnamenevis.org/showthread.php?101234
http://barnamenevis.org/showthread.php?73688

یک راه حل :
http://wiki.asp.net/page.aspx/721/using-responseredirect-and-responseend-in-trycatch-block/

موفق باشید