-
exception در c#
با سلام
من یک پروژه winapp را با c# نوشتم که توابع زیادی در ان وجود دارد.
حال برای کنترل exception های ان مجبورم برای تک تک توابع از بلوک try...catch...finally استفاده کنم.
می خواستم بدون در c# کامپوننت یا event یا ... وجود ندارد که زمان exceptio اجرا شود.
در زبان دلفی یک کامپوننت وجود دارد که با استفاده از ان ما می توانیم تمام exception های برنامه را کنترل کنیم(بدون استفاده از بلوک try).
از دوستان اگر کسی جواب را میداند لطف کند بنویسد.
با تشکر
-
این یه تابع
کد:
private void btnokb_Click(object sender, EventArgs e)
{
item itm = new item();
try
{
itm.Addbrand(txtbr.Text);
MessageBox.Show("برند جدید ثبت شد", "سیستم فروش");
grbbrand.Visible = false;
this.additem_Load(sender, e);
}
catch
{
MessageBox.Show("نام برند وارد شده تکراری است", "سیستم فروش");
}
}
-
با سلام
از شما متشکرم.
اما فکر کنم منظور من را نفهمیدید.
منظورم اینه که اگر ما 100 تابع داشته باشیم حتما باید برای هر 100 تابع دستور try را بنویسیم یا اینکه می شود تمام ان ها را در جای دیگر مدیریت کرد.
امیدوارم متوجه شده باشید.
لطف میکنید اگر جواب دهید.
با تشکر
-
متد Main کلاس Program را به شکل زیر تغییر بدید...
کد:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (var frm = new Form1())
{
try
{
Application.Run(frm);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
موفق باشید
-
با سلام
از mahdi7s متشکرم.
دقیقا دنبال همچین چیزی بودم.
اما کد شما 2 مشکل دارد:
1- در خارج از محیط VS کار نمیکند و پیغام خطای خود VS نمایش داده میشه نه پیغامی که من می خواهم.
2- در محیط vd بعد از تایید کردن پیغام کل پروژه بسته میشه.
ممنون میشم در این مورد توضیح دهید.
با تشکر
-
کلاس Program تان را اینطوری کنید:
کد:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.ThreadException += new ThreadExceptionEventHandler(Application_ThreadException);
using (var frm = new Form1())
{
Application.Run(frm);
}
}
public static void Application_ThreadException(object sender, ThreadExceptionEventArgs e)
{
MessageBox.Show(e.Exception.Message);
}
موفق باشید
-
با سلام
mahdi7s عزیز از وقتی که گذاشتید متشکرم.
دقیقا همین را می خواستم.
مشکلم حل شد.
با تشکر