Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
c# pokracovanie aj po exceptione

Registrovaný: 03.05.08
Prihlásený: 20.06.12
Príspevky: 8
Témy: 2
Bydlisko: LC
Príspevok NapísalOffline : 26.03.2010 21:53

Kód:
Image img;
if (_moduleImagesList.TryGetValue("gamePlan", out img))
{
       pForm.BackgroundImage = img;
}
else
{
       pForm.BackgroundImage = _baseImageList["gamePlan"];
       throw new FileNotFoundException("No background image found for the application, using the default image.");
       ... dalsi kod
}


Zdravim
v predoslom kode chcem nacitat isty obrazok do pozadia formulara a ak sa tento obrazok nenajde nacitam si predvoleny, ale pomocou exception chcem upozornit nadradenu triedu, z ktorej som metodu volal aby mohla odchytit a vypisat message z tej exception ale aby kod pokracoval...
je to mozne? alebo ako inac by som mohol dat nadradenej triede vediet ze som musel pouzit iny obrazok nez cakala? inak nez cez navratovu hodnotu ;) dik







_________________
Born in past, alive now, perhaps the death will arrive someday.
Offline

Čestný člen
Čestný člen
c# pokracovanie aj po exceptione

Registrovaný: 11.08.07
Príspevky: 4088
Témy: 34
Bydlisko: Brno
Príspevok NapísalOffline : 27.03.2010 9:15

Skus vygooglit nieco o blokoch try catch finally.


Offline

Užívateľ
Užívateľ
c# pokracovanie aj po exceptione

Registrovaný: 03.05.08
Prihlásený: 20.06.12
Príspevky: 8
Témy: 2
Bydlisko: LC
Príspevok Napísal autor témyOffline : 27.03.2010 12:26

Ďuri píše:
Skus vygooglit nieco o blokoch try catch finally.


viem ako try-catch-finally funguju... ja len chcem nejakym sposobom (plan bol cez throw new Ex, lenze to nefunuje ako chcem) ak nastane ta situacia spomenuta vyssie upozornit triedu ktora volala tuto metodu upozornit ze nieco nastalo kus inac nez sa ocakavalo
viem ze by to slo cez navratovu hodnotu metody, len som bol zvedavy ci nie je nejaky sofistikovanejsi sposob ked navratovu pouzivam na ine..







_________________
Born in past, alive now, perhaps the death will arrive someday.
Offline

Užívateľ
Užívateľ
c# pokracovanie aj po exceptione

Registrovaný: 03.05.08
Prihlásený: 20.06.12
Príspevky: 8
Témy: 2
Bydlisko: LC
Príspevok Napísal autor témyOffline : 27.03.2010 13:11

uz asi viem ako to spravim

Kód:
public void DrawGamePlan(Form pForm, string pSource)
        {
            Image img;
            switch (pSource)
            {
                case "module":
                    if (!_moduleImagesList.TryGetValue("gamePlan", out img))
                    {
                        throw new FileNotFoundException("No background image found for the application, using the default image.");
                    }
                    break;
                case "base":
                    try
                    {
                        img = Image.FromFile((_moduleGraphicsPath.Substring(0, _moduleGraphicsPath.Substring(0, _moduleGraphicsPath.LastIndexOf("\\")).LastIndexOf("\\"))) + "\\base\\images\\gamePlan.png");
                    }
                    catch (FileNotFoundException ex)
                    {
                        System.Diagnostics.Debug.WriteLine("No file found.");
                        throw;
                    }
                    break;
                default:
                    throw new ArgumentException("No such files exists.");
                    break;
            }

            pForm.BackgroundImage = img;
        }

a miesto kde to budem volat:
Kód:
try
{DrawGamePlan(form1,"module");}
catch (FileNotFound ex)
{
         try{DrawGamePlan(form1,"base");}
         catch{MessageBox.Show("Fatalny error :(")}
}
catch (ArgumentException ex)
{
         MessageBox.Show("Naprd vstup");
}

myslis ze moze byt?







_________________
Born in past, alive now, perhaps the death will arrive someday.
Offline

Užívateľ
Užívateľ
c# pokracovanie aj po exceptione

Registrovaný: 26.09.07
Prihlásený: 06.06.10
Príspevky: 53
Témy: 7
Bydlisko: Zákopčie, K...
Príspevok NapísalOffline : 28.03.2010 18:05

Co povies na taketo riesenie:

Kód:
public void DrawGamePlan(Form pForm, string pSource)
{
    Image img;
    if (!_moduleImagesList.TryGetValue("gamePlan", out img))
    {
        DrawGamePlan(Form pForm);
        throw new ArgumentException(string.Format("No background image found for the application from source {0}.", pSource));
    }
    pForm.BackgroundImage = img;
}

public void DrawGamePlan(Form pForm)
{
    Image img;
    try
    {
        img = Image.FromFile((_moduleGraphicsPath.Substring(0, _moduleGraphicsPath.Substring(0, _moduleGraphicsPath.LastIndexOf("\\")).LastIndexOf("\\"))) + "\\base\\images\\gamePlan.png");
    }
    catch (FileNotFoundException ex)
    {
        System.Diagnostics.Debug.WriteLine("No file found.");
        throw;
    }

    pForm.BackgroundImage = img;
}


try
{
    DrawGamePlan(form1,"module");
}
catch (FileNotFound ex)
{
    MessageBox.Show("Fatalny error :(");
}
catch (ArgumentException ex)
{
         MessageBox.Show("Naprd vstup");
}







_________________
Život by bol jednoduchší, keby sme k nemu mali zdrojový kód!
Offline

Užívateľ
Užívateľ
c# pokracovanie aj po exceptione

Registrovaný: 03.05.08
Prihlásený: 20.06.12
Príspevky: 8
Témy: 2
Bydlisko: LC
Príspevok Napísal autor témyOffline : 28.03.2010 20:40

poviem ti ze dik :) nieco take som chcel len som sa nevedel doklepat k tomu aby mi ten img na background nastavilo aj pri vyhodeni ex..







_________________
Born in past, alive now, perhaps the death will arrive someday.
Odpovedať na tému [ Príspevkov: 6 ] 


Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy. pokračovanie scriptu

v JavaScript, VBScript, Ajax

10

483

30.03.2010 13:57

TheRay Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. demo a pokračovanie v hre

v Počítačové hry

6

265

18.02.2015 20:40

ViktorinoSK Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Pokracovanie v studiu v inom odbore

v Vzdelanie, štúdium, škola

15

1498

30.05.2011 14:58

TommyHot Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra