سلام دوستان
من چطوری میتونم بعد از اجرای برنامه ام بفهمم که سیستمی که برنامه روس لود شده به اینترنت وصل هست یا نه:13:
:40: البته تو VB.net
Printable View
سلام دوستان
من چطوری میتونم بعد از اجرای برنامه ام بفهمم که سیستمی که برنامه روس لود شده به اینترنت وصل هست یا نه:13:
:40: البته تو VB.net
یه تابع API در ویندوز هست که اینکارو انجام میده. ولی این تابع در صورت تنظیم نبودن Explorer نتایج غلط بر می گردونه.
یه روش دیگه اینه که یه درخواست وب (Web Request) بدی و ببینی که آیا جوابی داده میشه یا نه؟
قطعه کد زیر همین کارو می کنه. اگه ازتباطی برقرار شد نتیجه می گیریم که به اینترنت متصلیم و true برگردانده می شود. در صورت عدم اتصال به اینترنت یک Exception رخ می دهد که در همان تابع گرفته می شود و false برگردانده می شود:
به صورت زیر می توان از این کد استفاده کرد:کد:Public Function IsConnectionAvailable() As Boolean
' Returns True if connection is available
' Replace www.yoursite.com with a site that
' is guaranteed to be online - perhaps your
' corporate site, or microsoft.com
Dim objUrl As New System.Uri("http://www.yoursite.com/")
' Setup WebRequest
Dim objWebReq As System.Net.WebRequest
objWebReq = System.Net.WebRequest.Create(objUrl)
Dim objResp As System.Net.WebResponse
Try
' Attempt to get response and return True
objResp = objWebReq.GetResponse
objResp.Close()
objWebReq = Nothing
Return True
Catch ex As Exception
' Error, exit and return False
objResp.Close()
objWebReq = Nothing
Return False
End Try
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] رو هم نگاهی بنداز مربوط به دریافت اطلاعات مربوط به شبکه هست.کد:If IsConnectionAvailable() = True Then
MessageBox.Show("You are online!")
End If
آقا دستت درد نکنه توضیحت خیلی کامله
فقط اگه میشه بگید این دستور Try چیکار میکنه؟!!
بیبین توی .NET یه سیستم خطایابی هست به نام Exception ها.
یک کلاس کلی وجود داره به نام Exception که همۀ exception ها را از آن مشتق می کنند.
هنگامی که خطایی غیرمنتظره روی داد این exception ها اصطلاحاً پرتاب (throw) می شوند.
مثلاً اگر یک عدد را بر صفر تقسیم کنیم، یک exception به نام DivisionByZeroException پرتاب می شود.
حال اگر این پرتاب شدن درون یک بلوک try باشد برنامه به بخش catch می رود و می توان در آن جا پیام مناسبی به کاربر نشان داد.
در غیر این صورت (اگر در بلوک try نباشد) برنامه متوقف می شود.
یه برنامه نوشتم که نحوۀ بکارگیری exception ها رو نشون میده (البته به c#):
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دکمۀ اول کد زیر توشه:
که خطای زیر رو تولید می کنه و سپس برنامه متوقف میشه:کد:private void button1_Click(object sender, EventArgs e)
{
int a = 4;
int b = 0;
int c;
c = a / b;
MessageBox.Show("a+b=" + c);
}
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دکمۀ دوم کد زیر توشه:
که exception پرتاب شده رو handle می کنه و پیامی نشون میده ولی برنامه برمی گرده به صفحۀ اول و متوقف نمیشه.کد:private void button2_Click(object sender, EventArgs e)
{
int a = 4;
int b = 0;
int c;
try
{
c = a / b;
MessageBox.Show("a+b=" + c);
}
catch( Exception exp )
{
MessageBox.Show("خطای زیر رخ داد:" + "\n" + exp.ToString());
}
}
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دکمۀ سوم:
که یه فایلی که وجود نداره رو باز می کنه:کد:private void button4_Click(object sender, EventArgs e)
{
System.IO.StreamReader file = new System.IO.StreamReader("ADSFDS");
string text = file.ReadLine();
}
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دکمۀ چهارم
که پیام مناسب رو به کاربر نشون میده.کد:private void button5_Click(object sender, EventArgs e)
{
try
{
System.IO.StreamReader file = new System.IO.StreamReader("ADSFDS");
string text = file.ReadLine();
}
catch
{
MessageBox.Show("اشکال در باز کردن فایل");
}
}
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
توی [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ] هم دربارۀ Exception Handling آموزش فارسی هست.
آقا دستت درد نکنه من تو این 2 روز خودمم رفتم تو یه کتاب گشتم دستور Try رو پیدا کرد بعد فکر کردم خیلی کامل یاد گرفتم ولی با توضیح کامل و بی نقص شما متوجه شدم که الان این اتفاق افتاده
ما چاکریم!نقل قول:
البته باید بگم که مبحث exception ها خیلی وسیع تره. یعنی ما یه سری exception استاندارد داریم که از پیش تعریف شده اند ولی ممکنه نیاز بشه که exception های جدیدی ایجاد کنیم. (که به user-defined Exception معروفند)
اینجا هارو یه نگاه بنداز:
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
و یا توی اینترنت واسه Exception in C3 و یا .NET سرچ بزن این مطالبو پیدا می کنی.