PDA

View Full Version : سوال: مشکل با try - catch در ex.Message



elham1985
پنج شنبه 24 فروردین 1391, 21:08 عصر
با سلام.
بچه ها من میخوام توی try- catch ام وقتی مینویسم:

catch (Exception ex)
{
if (ex.Message == "Cannot insert explicit value for identity column in table 'st_tbl' when IDENTITY_INSERT is set to OFF.")

Response.Write("وجود مشكل در ورود اطلاعات پروژه.");

else if (ex.Message == "Input string was not in a correct format.")

Response.Write("فرمت وارد شده، صحيح نميباشد.");

else
Response.Write(ex.Message);



ولی هیچ وقت متن های فارسی را که گفتم چاپ نمیکند و همان ex خودش را چاپ میکند.با اینکه متن خطا، همانی را نشان میدهد که من در if ام گفتم.به نظرتون چرا؟!

mahmood_4246
پنج شنبه 24 فروردین 1391, 21:20 عصر
سلام
از equals استفاده کن ببین کارت رو راه میندازه .. مقدار True یا False بر میگردونه

String.Equals(String, String)
اینحا هم چند نمونه مثال هست ..
http://msdn.microsoft.com/en-us/library/1hkt4325.aspx

elham1985
پنج شنبه 01 تیر 1391, 22:57 عصر
با سلام.
من مشکلم حل نشد. نمیدونم چرا نمی فهمه؟:عصبانی:
حالا اگه این نشد، و نتونست دقیق تطابق بده، اصلا دستوری هست مثل %% like در sql . که مثلا بتونم بهش بگم اگه همچین خطی وجود داشت(نه عینا)، فلان پیغام رو بده؟

sasanrstm
جمعه 02 تیر 1391, 01:10 صبح
با سلام.
بچه ها من میخوام توی try- catch ام وقتی مینویسم:

catch (Exception ex)
{
if (ex.Message == "Cannot insert explicit value for identity column in table 'st_tbl' when IDENTITY_INSERT is set to OFF.")

Response.Write("وجود مشكل در ورود اطلاعات پروژه.");

else if (ex.Message == "Input string was not in a correct format.")

Response.Write("فرمت وارد شده، صحيح نميباشد.");

else
Response.Write(ex.Message);



ولی هیچ وقت متن های فارسی را که گفتم چاپ نمیکند و همان ex خودش را چاپ میکند.با اینکه متن خطا، همانی را نشان میدهد که من در if ام گفتم.به نظرتون چرا؟!
catch (Exception ex)
فقط خطاي برنامه تو به زبان انگليسي نشون ميده تا جائي كه من ميدنم فقط براي نشان دادن خطاي موجود در برنامه ازش استفاده ميشه كه معلوم كنه خطاي برنامه چيه؟
وطريق استفادش هم اينجوريه
catch (Exception ex)
{
lbleror.text=ex.message

}
كه به شما اعلام ميكنه خطاي موجود در برنامتون چيه؟
به نظر من نميشه بهش گفت اين و چاپ كن يا چاپ نكن اگه مي خوائي بجاي ارورت متن فارسي نشون بده بايد
بنويسي


try
{
cod hat
}
catch
{
lblerore.text=" هر چي دوست داري چاپ بشه چه فارسي چه انگليسي";
}

elham1985
پنج شنبه 08 تیر 1391, 19:10 عصر
آخه ارورها متفاوته.گاهی کددانشجویی وارده توسط کاربر تکراریه، گاهی کد درس، گاهی....
من میخوام درست به کاربر بگم که مشکل عدم ثبت از کجاست.

mehrzad_ali
پنج شنبه 08 تیر 1391, 19:16 عصر
از Contain استفاده کن ex.Message.contains(text

elham1985
پنج شنبه 08 تیر 1391, 20:51 عصر
با این هم نشد. خودتون استفاده کردید؟درست نشون داده؟

من واقعا دیگه نمیدونم.این کد منه:

catch (Exception ex)
{
if (ex.Message.Contains("Violation of PRIMARY KEY constraint 'PK_st_Inf'. Cannot insert duplicate key in object 'dbo.st_Inf'. The statement has been terminated. "))
{
lblMsg.Text = "اطلاعات ورودی، تکراری میباشد.";
}

mehrzad_ali
پنج شنبه 08 تیر 1391, 21:15 عصر
همه رو نزار توی contains فقط همینو بزار PRIMARY KEY