PDA

View Full Version : كنتل خطا در سي شارپ دات نت



gigilnaz
دوشنبه 29 خرداد 1391, 10:40 صبح
یه سوال داشتم در خصوص اینکه وقتی در انتقال اطلاعات(Casting) بین دو تایپ همزاد overflow داشته باشیم که در واقع یک Logical Error میباشد به چه نحوی می تونیم این خطای منطقی را به Run Time Error تبدیل کنیم و يا از بروز خطا جلوگيري كنيم ؟؟

hunter_ara
دوشنبه 29 خرداد 1391, 12:45 عصر
یه سوال داشتم در خصوص اینکه وقتی در انتقال اطلاعات(Casting) بین دو تایپ همزاد overflow داشته باشیم که در واقع یک Logical Error میباشد به چه نحوی می تونیم این خطای منطقی را به Run Time Error تبدیل کنیم و يا از بروز خطا جلوگيري كنيم ؟؟

try
{
//the code that may conait error(s)!
}
catch (Exception E)
{
MessageBox.Show(E.Message, "Error");
}

اگر catch رو خالی بزارید بدون توجه به ارور به اجرای برنامه ادامه میده!

gigilnaz
دوشنبه 29 خرداد 1391, 12:56 عصر
ببخشيد متوجه جوابتون نشدم يكم توضيح ميدين ؟ من مي خوام خطا بده كه متوجه بشم overflow رخ داده يا نه

مرتضی تقدمی
دوشنبه 29 خرداد 1391, 13:02 عصر
لطفا یک مثال قرار بدید.

gwbasic
دوشنبه 29 خرداد 1391, 13:11 عصر
همانطور که اشاره کردین هنگام casting خطای overflow اتفاق نمی افته!!! برای رفع این مشکل می تونید از checked به صورت زیر استفاده کنید

int i = 55566666;
checked
{
try
{
short s = (short)i;
}
catch (OverflowException ex)
{
// your code
}

}