Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

[c#] exception error ???

[es] :: .NET :: .NET Desktop razvoj :: [c#] exception error ???

[ Pregleda: 2327 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.co.yu.



+2 Profil

icon [c#] exception error ???01.07.2007. u 22:01 - pre 171 meseci
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???
 
Odgovor na temu

Function
Amel Music
//none
BiH

Član broj: 26785
Poruke: 27
*.PPPoE-5932.sa.bih.net.ba.



Profil

icon Re: [c#] exception error ???01.07.2007. u 22:11 - pre 171 meseci
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

It's important that you never stop asking questions!
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.co.yu.



+2 Profil

icon Re: [c#] exception error ???01.07.2007. u 22:36 - pre 171 meseci
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?
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl-1.sezampro.yu.



+2 Profil

icon Re: [c#] exception error ???01.07.2007. u 23:23 - pre 171 meseci
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.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

Valerij Zajcev

Član broj: 40886
Poruke: 1374
*.dynamic.sbb.co.yu.



+2 Profil

icon Re: [c#] exception error ???03.07.2007. u 21:16 - pre 171 meseci
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?
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.adsl.static.sezampro.yu.



+2 Profil

icon Re: [c#] exception error ???03.07.2007. u 21:29 - pre 171 meseci
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.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

[es] :: .NET :: .NET Desktop razvoj :: [c#] exception error ???

[ Pregleda: 2327 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.