PDA

View Full Version : سوال: Try & catch هایی که در هر برنامه باید وجود داشته باشه



hamid30sharp
دوشنبه 30 تیر 1393, 00:29 صبح
با سلام
سوالی برام پیش اومده و اون هم اینه که یک برنامه استاندارد که قراره تحویل مشتری بشه بصورتکلی باید چه Try & catch هایی رو داشته باشه؟ (من می دونم مثلا در insert - delete - update و....) که خود کاربر اونها رو می نویسه باید Try & catch - قرار داد تا از خطا جلوگیری بشه .
اما ایا موار دیگری هست که به غیر از متدهای خود کاربر در هر برنامه ایی باید اونها رو مدیریت کرد.

omid nasri
دوشنبه 30 تیر 1393, 00:49 صبح
هر جای که احساس کنی با خطا مواجه میشه باید ازش استفاده کنی.

hamid30sharp
دوشنبه 30 تیر 1393, 01:02 صبح
هر جای که احساس کنی با خطا مواجه میشه باید ازش استفاده کنی.

من زمانی این سوال به ذهنم رسید که برنامه در زمان بسته شدن از این کد در program.cs خطا گرفت که قاعدتا نباید بگیره
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(fals e);
Application.Run(new Form1());
}
}

omid nasri
دوشنبه 30 تیر 1393, 01:40 صبح
نوع خطا رو اینجا قرار دهید؟

mh3242
دوشنبه 30 تیر 1393, 01:50 صبح
از دوستان عذر میخوام که وارد بحثشون میشم.
به نظر من هر چیزی ( شی، کلاس، ...) که exception بر میگردونه باید از try catch استفاده بکنی. (البته خیلی سخته و من خودم هیچ وقت چنین کاری نمیکنم)
و برای حالتی که گفتین. البته شایدم بی ربط باشه اما کدی هست که میشه تو کلاس program نوشت تا هر وقت run time error رخ داد برنامه هنگ نکنه و مثل حالت try catch عمل کنه. اگه این کد ها رو ندارین و فکر میکنید نیازتون میشه بفرمائین تا قرار بدم.

hamid30sharp
دوشنبه 30 تیر 1393, 03:27 صبح
از دوستان عذر میخوام که وارد بحثشون میشم.
به نظر من هر چیزی ( شی، کلاس، ...) که exception بر میگردونه باید از try catch استفاده بکنی. (البته خیلی سخته و من خودم هیچ وقت چنین کاری نمیکنم)
و برای حالتی که گفتین. البته شایدم بی ربط باشه اما کدی هست که میشه تو کلاس program نوشت تا هر وقت run time error رخ داد برنامه هنگ نکنه و مثل حالت try catch عمل کنه. اگه این کد ها رو ندارین و فکر میکنید نیازتون میشه بفرمائین تا قرار بدم.

ممنون می شم اگر کد رو بزارید

mh3242
دوشنبه 30 تیر 1393, 03:42 صبح
تو program.cs قبل از


Application.Run(newForm1());


کد


Application.ThreadException += newSystem.Threading.ThreadExceptionEventHandler(Ap plication_ThreadException);


رو قرار بدین و بیرون از main کد


static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{


}


رو قرار بدین و باهاش مثل catch رفتار کنید.