C# metoda s try a catch

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
mr.M
Level 2.5
Level 2.5
Příspěvky: 276
Registrován: září 09
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

C# metoda s try a catch

Příspěvekod mr.M » 05 úno 2010 19:36

Ahoj, vytvořil jsem si v C# try a catch

Kód: Vybrat vše

static void Main(string[] args)
        {
         
           Console.Write("Zadejte číslo: ");
         int  a = 0;
          int  b = 0;
            do
            {
                try
                {
                    a = Convert.ToInt32(Console.ReadLine());
                    b = 1;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Toto není číslo. Zvolte prosím číslo, nikoliv písmeno či jiný znak!");
                }
                catch (OverflowException)
                {
                    Console.WriteLine("Zvolte číslo, které je rovno nebo menší než  2 147 483 647 ! \n(toto číslo proto, aby nezvnikl tzv. Owerflow)");
                }
            } while (b == 0);
           
            Console.WriteLine("\n Zadali jste toto číslo: " +a);
            Console.Read();
        }


a teď bych ten cyklus s try a catch chtěl dát do metody která by měla argument x (tzn. když jí pak budu volat např. kontrola(x) tak aby všude, kde v té metodě je proměná a byla hodnota z x - nevím jestli to chápu dobře, proto sem píši i to jak to myslím). Dál bych po tom potřeboval (po té co proběhne bez problémů try) aby se s hodnotou dalo dále pracovat v "hlavní metodě". Zjedodušeně řeceno, potřeboval bych napsat metodu pro try a catch o jednom argumentu, který by znamenal zadanou hodnotu uživatelem a s touto hodnotou pak dále pracovat ... :blush: Díky M.
No stress, have fun.

Reklama
Uživatelský avatar
domitea
Tvůrce článků
Level 4.5
Level 4.5
Příspěvky: 1971
Registrován: červen 09
Bydliště: Královehradecký kraj
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod domitea » 05 úno 2010 21:16

A která proměná by to měla být? Dám sem příklad pro a
[syntax lang=csharp] private Void metoda_try_catch(int a) //může se jmenovat jinak a pro b tam bude int b
{
// tvuj kod od Console.Write.....
}

/* Zavolání */

// kod
y = Convert.ToInt32(Console.Readline());
metoda_try_catch(y);
// kod
[/syntax]

Snad by to mělo jít. Jinak u toho posledního řádku dáš do metody údaje z proměné (y) do proměné (a popr. b)

Uživatelský avatar
mr.M
Level 2.5
Level 2.5
Příspěvky: 276
Registrován: září 09
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod mr.M » 06 úno 2010 10:54

supr díky... bylo tam pár kosmetických vad (malá x velká písmena) , ale to je v cajku :-) ... napsal jsem to tak, jak si říkal ale má to jedinou vadu ... try a catch ošetřuje třeba právě to přetečení... takže, když tam budu mít

    y = Convert.ToInt32(Console.Readline());
    metoda_try_catch(y)
tak to spadne aniž by se to dostalo k volání té metody... :eh: což na konec je celkem pochopitelný, ale teď nevím jak to vyřešit...

pak mě ještě napadlo toto : nevím sice jak přesně fungují globální proměnné, ale jestli by mi ni nějak pomohlo si vytvořit třeba globální proměnou u a v metoda_try_catch vše načíst do "místních" a nakonci metody to přiřadit do u - metoda by tedy vracela číslo a byla by bez parametru... ale nevím jestli to tak vůbec jde, ale stále mi přijde lepší způsob první .... :eh: :blush:
No stress, have fun.

Uživatelský avatar
domitea
Tvůrce článků
Level 4.5
Level 4.5
Příspěvky: 1971
Registrován: červen 09
Bydliště: Královehradecký kraj
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod domitea » 06 úno 2010 15:29

jestli jde jen o to, že není ošetřená výjimka s intem tak to stačí dát do try a catch :D

globální proměná se píše:
[syntax lang=csharp] public int a = 0; [/syntax]

Uživatelský avatar
mr.M
Level 2.5
Level 2.5
Příspěvky: 276
Registrován: září 09
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod mr.M » 06 úno 2010 16:20

mno jo, vlastně je úplně zbytečný kvůli tomu dělat metodu že? já jsem vůl... :eh: :blush:
No stress, have fun.

Uživatelský avatar
domitea
Tvůrce článků
Level 4.5
Level 4.5
Příspěvky: 1971
Registrován: červen 09
Bydliště: Královehradecký kraj
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod domitea » 06 úno 2010 16:53

Pro přehled to zas není zas taková blbost :D , ale pokud jde o program s jednou funkcí, tak to nemá cenu :wink:

Uživatelský avatar
mr.M
Level 2.5
Level 2.5
Příspěvky: 276
Registrován: září 09
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod mr.M » 06 úno 2010 18:52

:-) a jak by se to tedy řešilo? protože to, co jsi mi psal zkolabuje... :blush:
No stress, have fun.

Uživatelský avatar
domitea
Tvůrce článků
Level 4.5
Level 4.5
Příspěvky: 1971
Registrován: červen 09
Bydliště: Královehradecký kraj
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod domitea » 06 úno 2010 20:53

To kdybych věděl :x . No nic. Co to je za Consolový program, popř. nepřihodíš projekt ?

Uživatelský avatar
mr.M
Level 2.5
Level 2.5
Příspěvky: 276
Registrován: září 09
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod mr.M » 06 úno 2010 20:54

No zatím jen to, co jsem posílal prvně... :-) /chtěl jsem se něčemu přiučit/ Teď mě to zajímá spíš z hlediska zajímavosti tématu :blush:

EDIT: jo pokud chceš, můžu ti to hodit celé, ale myslím, že rychlejší to budeš mít, když to zkopčíš z toho, co jsem psal
No stress, have fun.

Uživatelský avatar
domitea
Tvůrce článků
Level 4.5
Level 4.5
Příspěvky: 1971
Registrován: červen 09
Bydliště: Královehradecký kraj
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod domitea » 06 úno 2010 21:03

Na msdn to bude určitě Odkaz. Tam u toho tvého příkladu byl problém, že nebylo kam dát return(podařilo se to upravit,ale chybělo mu return :huh: )

Uživatelský avatar
mr.M
Level 2.5
Level 2.5
Příspěvky: 276
Registrován: září 09
Bydliště: Praha
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod mr.M » 06 úno 2010 21:09

pokud by jsme chtěl tu druhou metodu a celé to zadávání by spočívalo v metodě metoda_catch_try tak by to mohlo být nějak tak, že do ní dáme úplně jako poslední řadek v try return(a); a pak v hlavní by bylo int x = metoda_catch_try ; nebo ne ?

EDIT: aha tak takhle to nejde.. :blush:
EDIT: na to msdn jsem koukal, ale nevymyslel jsem z toho nic :-(
No stress, have fun.

Uživatelský avatar
domitea
Tvůrce článků
Level 4.5
Level 4.5
Příspěvky: 1971
Registrován: červen 09
Bydliště: Královehradecký kraj
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: C# metoda s try a catch

Příspěvekod domitea » 06 úno 2010 21:19

No já jsem taky nic nevymyslel :oops:


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 2 hosti