Avatar billede noem Nybegynder
27. juli 2006 - 09:55 Der er 3 kommentarer

Exeption Handling

Hej

Jeg har en klasse som kalder en form, om denne form har jeg lavet exeption Handling og dens eneste funktion er at kalde en form (se klasse nedenfor)


public bool showConfigure(string strPCMxml,string strS7xml)
        {

            try
            {
                PCMstep7Dialogs.frmConfigureStations frmtest = new  PCMstep7Dialogs.frmConfigureStations(strPCMxml, strS7xml);
                frmtest.ShowDialog();
            }
            catch (Exception e)
            {
                System.Windows.Forms.MessageBox.Show("Error configuring nodes" + System.Environment.NewLine + e.Message,"Error",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Error);
                return false;
            }
            return true;
        }





Når der opstår en fejl i den form som bliver kaldt vil jeg gerne have fejlen (exeptionen) helt tilbage og blive håndteret af den klasse der viser messageboxen...

Hvordan gør jeg dette, min funktion der laver exeptionen ser sådan ud

try
{
    this.WriteXmlfile(this.strPCMxmlfile);
    this.bReturn = true;
    this.Close();
}
catch (System.IO.DirectoryNotFoundException)
{
      //If the folder we want to write back to did
      throw new Exception("Denne skal ud i den kallenden klasse");

}
Avatar billede noem Nybegynder
27. juli 2006 - 09:59 #1
Har lige specificeret det lidt :)

Jeg har en klasse som har en funktion der kalder en form, denne funktion har jeg lavet exeption Handling på (se klasse nedenfor)


public bool showConfigure(string strPCMxml,string strS7xml)
{

try
{
      PCMstep7Dialogs.frmConfigureStations frmtest = new PCMstep7Dialogs.frmConfigureStations(strPCMxml, strS7xml);
      rmtest.ShowDialog();
}
catch (Exception e)
{
    System.Windows.Forms.MessageBox.Show("Error configuring nodes" + System.Environment.NewLine + e.Message,"Error",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Error);
                return false;
            }
            return true;
        }





Når der opstår en fejl i den form som bliver kaldt vil jeg gerne have fejlen (exeptionen) bliver håndteret af den klasse der kalder formen(den som er vist ovenfor)...

Hvordan gør jeg dette, min funktion i formen der laver exeptionen ser sådan ud

try
{
    this.WriteXmlfile(this.strPCMxmlfile);
    this.bReturn = true;
    this.Close();
}
catch (System.IO.DirectoryNotFoundException)
{
      //If the folder we want to write back to did
      throw new Exception("Denne skal ud i den kallenden klasse");

}
Avatar billede Slettet bruger
27. juli 2006 - 10:23 #2
I den kaldende klasse skal du bare håndtere dit kald til den anden form i en try-catch blok, hvor du så fanger en evt. exception, der kastes fra den kaldte form.
Avatar billede noem Nybegynder
27. juli 2006 - 10:37 #3
thomasso, er det ikke også det jeg gør (se nedenfor)???
når jeg kører min .dll kommer YIT compileren op med en unhandled exeption,

syntes også det virkede da jeg kørte det som en windows application, men efter jeg lavede det om til en class liberey, virker det ikke :(

public bool showConfigure(string strPCMxml,string strS7xml)
{

try
{
      PCMstep7Dialogs.frmConfigureStations frmtest = new PCMstep7Dialogs.frmConfigureStations(strPCMxml, strS7xml);
      rmtest.ShowDialog();
}
catch (Exception e)
{
    System.Windows.Forms.MessageBox.Show("Error configuring nodes" + System.Environment.NewLine + e.Message,"Error",System.Windows.Forms.MessageBoxButtons.OK,System.Windows.Forms.MessageBoxIcon.Error);
                return false;
            }
            return true;
        }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester