PDA

View Full Version : پردازش استثنا



hossein_va
سه شنبه 02 خرداد 1391, 14:42 عصر
سلام.
با تابع زیر من عبارت ایمیل را اعتبار سنجی می کنم ولی نمی تونم بیرون از کلاس و جایی که این پراپرتی را فراخوانی می کنم استثنا را پردازش کنم و به کاربر بگم دلیل اشتباهش را!.ایا نحوه پرتاپ استثنا درست هست؟
protected string EmailAddress
{
get { return emailAddress; }
set {

Regex re = new Regex(@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");//regular expersion for email address

if (re.IsMatch(value.ToString()))
emailAddress= value;
else

throw new ExecutionEngineException();
}
}

hossein_va
سه شنبه 02 خرداد 1391, 22:10 عصر
کسی نیست کمک کنه

فرید نجفلو
سه شنبه 02 خرداد 1391, 22:48 عصر
نگفتید وقتی به خط throw میرسید چه اتفاقی میوفته
چون امکان نداره یک throw باشه و JIT اونو نادیده بگیره
از اون خط برنامه رو خط به خط اجرا کنید ببینید کجا می رسه
ممکنه در بین عملیات جایی هست که try داشته و شما خبر ندارید
در ضمن فکر کنم شما نیاز دارید پراپرتی رو public تعریف کنید!

hossein_va
سه شنبه 02 خرداد 1391, 23:17 عصر
من اینو نوشتم که اگه داده غلط بهش داده شد استثنا پرتاب بشه و در جای دیگه که فراخوانی می کنم بتونم استثنا را پردازش کنم.به نظر شما این غلطه؟راه حل شما چیه؟

فرید نجفلو
سه شنبه 02 خرداد 1391, 23:25 عصر
من نگفتم اشتباه نوشتید
گفتم صد در صد این استثنا در جایی گرفتار می شه که به شما نمی رسه
یعنی یا کد شما به اون قطه نمی رسه یا اگه می رسه استثنا به فرخوان نمیرسه
ما هیچ وقت یه استثنا سرگردان نداریم اگه شما به یک استثنا رسیدگی نکنید خود دانت (JIT) اون رو می گیره و همون گنجره معروف و بد خاطره رو نشون می ده