Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.358 pregleda

Najnovija ↓

[c#] exception error ??? 01.07.2007. u 23:01 · pre 235 meseci #1
c#...

Code:
int x = int.Parse(box.Text);
            int r = x;
            box1.Text = r.ToString();


kada unesem broj u box onda on taj broj prepise u drugi box1, ali kada unesem neki string izbaci mi exception error, kako se uopste koriste tostring i parse???
Re: [c#] exception error ??? 01.07.2007. u 23:11 · pre 235 meseci #2
Izbaci zato što funkcija Parse traži da je u karakterima broj da bi ga mogla pretvoriti u int.
Ako želiš zaobići exception, koristi TryParse
Potpis
It's important that you never stop asking questions!
Re: [c#] exception error ??? 01.07.2007. u 23:36 · pre 235 meseci #3
Citat:
Izbaci zato što funkcija Parse traži da je u karakterima broj da bi ga mogla pretvoriti u int.
Ako želiš zaobići exception, koristi TryParse


aha, znaci hoces da kazes da ovako ne moze da koristi string vec samo int, a da mi ne bi izbacivao gresku "moram" da koristim taj try, do koga inace jos nisam stigao?
Re: [c#] exception error ??? 02.07.2007. u 00:23 · pre 235 meseci #4
Evo par primera.
1. Klasika sa try-catch blokom
Code:

try
{
    int x = int.Parse(box.Text);
    box1.Text = x.ToString();
}
catch (FormatException ex)
{
    box1.Text = "Greska";
}


2. Primena TryParse. "Nedostatak" je ako vrednost u box nije u pravilnom formatu, vrednost u box2 će biti nula
Code:

int x;
int.TryParse(box.Text, out x);
box1.Text = x.ToString();


3. Opet TryParse samo što ovog puta ako iz nekog razloga moraš setovati onaj int x na 0, ipak možeš ispisati poruku o grešci u box2.
Code:

int x;
   if (!int.TryParse(box.Text, out x))
      box1.Text = "Greska";
      else
         box1.Text = x.ToString();


U praksi ćeš koristiti sva tri primera, a koji konkretno, to će zavisiti od situacije.
Potpis
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
Re: [c#] exception error ??? 03.07.2007. u 22:16 · pre 235 meseci #5
Code:
try
            {
                double kursEvra = 81, sumaDinara = double.Parse(box.Text), sumaEvra;
                if (sumaDinara > 4000000)
                    throw new ArgumentOutOfRangeException();
                sumaEvra = promeniDinare(sumaDinara, kursEvra);
                lbl.Text = sumaEvra.ToString();
            }
            catch (FormatException poruka)
            {
                box.Text = poruka.Message;
                //MessageBox.Show("zadati karakteri nisu brojevi");
            }
            catch (ArgumentOutOfRangeException are)
            {
                lbl.Text = "ne mozete promeniti vise od 4000000 dinara";
            }
        }


Hvala pharos, velika pomoc. Polako se usetavam sa ovim pa imam neka pitanja:
1) ArgumentOutOfRangeException() - nece da se kompajlira bez zagrada, ovako radi lepo ali sta moze da se nadje izmedju zagrada?
2) Da li kada god napravim exception moram da napravim i catch?
3) Exceptioni su klase, da li to znaci da mogu i sam da ih isprogramiram a ne uvek da koristim .NET?
4) Ispravite me ako gresim, exceptioni se koriste uvek kada program treba da izbaci onu ruznu poruku ili da se srusi?
Re: [c#] exception error ??? 03.07.2007. u 22:29 · pre 235 meseci #6
1. To ti je neka klasa pa za nju moraš da pišeš zagradice, a u zagradicama možeš ništa, a možeš i nešto.
Recimo možeš
Code:

if (x > 5) throw new ArgumentException("Hehehe");

A da u catch bloku napišeš
Code:

catch (ArgumentException ae)
{
   MessageBox.Show(ae.Message);
}

Pa vidi šta se dešava i zašto je korisno.

2. Ne moraš, ali ako dođe do exception-a onda puca program, a ti to ne želiš...
Tako da piši catch svuda gde misliš da može doći do greške.

3. Možeš i svoje naravno. Ali malo se potrudi pa proguglaj kako se prave.

4. Koristi try/catch blok na svakom mestu gde može doći do pucanja tvog programa.
Potpis
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme