PDA

View Full Version : سوال: جلوگیری از بروز خطا هنگام نبودن کوکی مربوطه؟؟؟؟



aminghaderi
چهارشنبه 13 بهمن 1389, 21:59 عصر
سلام به همه دوستان و اساتید عزیزم.

یه سوال کاملا ساده و شاید خنده دار برام پیش اومده و ان اینه :
جلوگیری از بروز خطا هنگام نبودن کوکی مربوطه؟؟؟؟

آره ، درصورتیکه کوکی از روی سیستم توسط کاربر در زمان کار با برنامه پاک بشه برنامه خطایی صادر می کنه مبنی بر نبودن cookie ؟!

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


if ( Request.Cookies["Theme"].Value != null)
.
.
.


این کد در هنگام نبودن کوکی خطا زیر رو می گیره :

Object reference not set to an instance of an object.


لطفا راهنمایی فرمایید.
با کمال تشکر:قلب:

LadyWonderFul
چهارشنبه 13 بهمن 1389, 22:24 عصر
اگر از try catch استفاده کنید فکر کنم مشکلتون حل بشه

aminghaderi
چهارشنبه 13 بهمن 1389, 22:46 عصر
ممنون از پاسختون.
آره این مورد هم توی فکرم بود ولی حقیقت خیلی غیر منطقی می یاد؟!
معمولا برای این جور شرایط یه حالی می گذارند؟!
ولی در این مورد هر چه می گردم به چیزی نمی رسم متاسفانه شاید هم من پیدا نمی کنم.
ولی راه اخر همونی هست که شما فرمودین.

ممنون.

Himalaya
چهارشنبه 13 بهمن 1389, 23:08 عصر
if (Request.Cookies["UserSettings"] != null)
{
string userSettings;
if (Request.Cookies["UserSettings"]["Font"] != null)
{ userSettings = Request.Cookies["UserSettings"]["Font"]; }
}

Mostafa_Dindar
چهارشنبه 13 بهمن 1389, 23:11 عصر
سلام ,

اینطور امتحان کنید


if ( Request.Cookies["Theme"] != null)

aminghaderi
چهارشنبه 13 بهمن 1389, 23:54 عصر
سلام ,

اینطور امتحان کنید


if ( Request.Cookies["Theme"] != null)
همون طوری دستور رو بهش می دم ارور می گیره مصطفی جان.



if (Request.Cookies["UserSettings"] != null)
{
string userSettings;
if (Request.Cookies["UserSettings"]["Font"] != null)
{ userSettings = Request.Cookies["UserSettings"]["Font"]; }
}
این هم که همونه کرجی جان.

می دونید با این روش اگر کاربر یکم فنی باشه و بره کوکی رو پا کنه وسط کار خطا می گیره؟!
به این صورت :
من الان داخل سیستم لوگین کردم و سیتسم اتو ماتیک اطلاعات مربوط به theme پنل رو داخل کوکی قرار می دهه ، حالا اگر کاربر بیاد و کوکی theme رو از داخل کوکی های دیگر سیستم پاک کنه به جای اینکه شکل و شمایل پنل به حالت پیش فرض بر گرده خطای معروف runtime error رو می گیره؟!

حالا چیزی که نهایتا می تونم انجام بدم همون طوری که دوستمون فرمودند باید یه try واسش بزارم و به یه پیغامی مبنی بر لوگین مجدد بهش بدم.:ناراحت:

فکر کنم اخرین راه باشه....

ممنون از پاسختون .

Mostafa_Dindar
پنج شنبه 14 بهمن 1389, 00:18 صبح
فکر میکنم شما اشتباه میکنید ،


if ( Request.Cookies["Theme"].Value != null)با

if ( Request.Cookies["Theme"] != null)متفاوت است . دستور اول درصورتی که کوکی Theme وجود نداشته باشد باعث بروز خطا خواهد شد ولی دومی خیر , فکر نمیکنم خطای Object Null Reference مربوط به اون قسمت از کد باشه . در هر صورت من چیزی از منطق کار که میخواهید پیاده سازی کنید متوجه نشدم .

Himalaya
پنج شنبه 14 بهمن 1389, 00:19 صبح
می دونید با این روش اگر کاربر یکم فنی باشه و بره کوکی رو پا کنه وسط کار خطا می گیره؟!

کدایی که تو پست 4و5 گفته شد واسه اینه که اگه کوکی وجود داشت ، کار مورد نظر انجام بشه واگه وجود نداشت انجام نشه (یا به قول شما تم بره به حالت دیفالت). احتمالا ایراد از جای دیگس


این هم که همونه کرجی جان.

پست 4 زودتر از پست 5 زده شده ها :چشمک:

aminghaderi
پنج شنبه 14 بهمن 1389, 02:26 صبح
متفاوت است . دستور اول درصورتی که کوکی Theme وجود نداشته باشد باعث بروز خطا خواهد شد ولی دومی خیر , فکر نمیکنم خطای Object Null Reference مربوط به اون قسمت از کد باشه . در هر صورت من چیزی از منطق کار که میخواهید پیاده سازی کنید متوجه نشدم .

کدایی که تو پست 4و5 گفته شد واسه اینه که اگه کوکی وجود داشت ، کار مورد نظر انجام بشه واگه وجود نداشت انجام نشه (یا به قول شما تم بره به حالت دیفالت). احتمالا ایراد از جای دیگس

اوه........ دوستان عذر خواهی من دقت کافی را نداشتم الان که پست اقای دیدندار رو دیدم متوجه شدم که این با اون که من نوشتم فرق می کنه؟!:اشتباه:
دقیقا حالتی هست که برای سشن استفاده می کنم .

فردا چک می کنم و خبرش رو می دم.
ممنون.

aminghaderi
پنج شنبه 14 بهمن 1389, 13:06 عصر
دوستان OK بود ، ممنون از لطفتون.