ورود

نسخه کامل مشاهده نسخه کامل : نحوه فرار از formatexception و overflow ؟ c#



general geranger
23-11-2014, 21:22
از عنوان معلومه دیگه:n02: چیکار کنم که اگه کاربر توی Console.Readline(); که کانورت میشه به int مثلا یه مقدارstring وارد کنه برنامه به جای کرش کردن و formatexception دادن همونجا به کاربر اعلام کنه و دوباره ورودی بگیره. دومی هم اینکه تو محیط کنسول اگه کاربر عددی رو وارد کرد که بشه یه max برای تعداد ارقام تعیین کردتابیشتر از مقدار مجاز متغیر نشه و کرش نکنه
مثلا اینجا مقدار زیادی توی decimal بیاد اجازه نده بقیه کر بره تا overflow شه:n13:


ushort count = 1;

decimal[] Numbers = new decimal[15];

Console.WriteLine("Enter 15 numbers to spcefiy if they are even or odd \n \n ");



for (ushort Count = 0; Count < 15; Count++ ,count = Count)
{
Numbers[Count] = Convert.ToDecimal(Console.ReadLine());

if (Numbers[Count] % 2 == 0)
{
Console.WriteLine("Even \n \n");
}
else
{
Console.WriteLine("Odd \n \n");
}

}

Console.WriteLine("\n ++++++++++++++++++++++++++++++++++++++++++++++ \n {0} Numbers specified . Good luck!", count);

Console.ReadLine();


خیلی مبتدین:n27:

iceweek
24-11-2014, 13:56
زیاد متوجه سوال دوم نشدم.
اما کلا رشته را که میخوای کانورت به عدد کنی توی try بنویس.و توی catch خطای مورد نظرتو به کاربر نشون بده

general geranger
24-11-2014, 19:18
زیاد متوجه سوال دوم نشدم.
اما کلا رشته را که میخوای کانورت به عدد کنی توی try بنویس.و توی catch خطای مورد نظرتو به کاربر نشون بده

سلام میتونید کدشو بنویسین؟ منظورم اینه که وقتی یک ورودی integer میخواد برنامه یک string وارد میکنم کرش میکنه.

یا مثلا توی یه consoleapplication که توان محاسبه میکنه کاربر یه عدد خیلی بزرگ وارد کنه overflow پیش نیاد

_H2_
25-11-2014, 00:06
سلام
برای تبدیل امن و بدون خطا متن به عدد میتوانید از توابع int.TryParse یا long.TryParse یا double.TryParse و... استفاده کنید.
این توابع اگر نتوانند ورودی را تبدیل کنند مقدار false پس خواهند داد و معرف رشته متنی نامعتبر است.

در خصوص max هم اگر منظورتان داشتن یک حداقل و حداکثر برای ورودی است که میتوانید با if بررسی کنید.
و اگر منورتان سرریز در زمان جمع و... است باید بگذارید جمع انجام شود و سپس خطا را با Try-Catch مدیریت کنید...
نمونه کد پیشنهادی:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید