05. juni 2005 - 14:20Der er
16 kommentarer og 1 løsning
c# fange exception fra .cs fil i aspx.cs filen
Jeg har en klasse med metode (AddEmp) der opretter en Employe i en database. Det er ikke muligt at oprette en employee med samme e-mail da feltet er unikt. Det fanger jeg fint med en try/catch i AddEmploy, men hvordan får jeg skrevet det ud til brugeren på Tilføj employee siden (aspx.cs). Hvor jeg "sidst" i min kode gør følgende: Employee.AddEmployee(emp); Hvordan fanger jeg at emp ikke er blevet indsat pga. unik email? og kan skrive dette ud til brugeren på Tilføj employee siden?
Er ikke helt med, jeg kan da ikke skrive <asp:label.... inde i en cs fil, skal det ikke skives i aspx.cs siden... og en sådan er der netop ikke på min AddEmp klasse side, da det er en "ekstern" klasse fil...
jeg har en try catch uden om min database connection, som ligger i den ekstene klasse fil. Og mit problem er netop, at jeg gerne vil kunne vise brugeren noget på skærmen hvis det går galt i connectionen... Men hvordan får jeg fat i den exception der bliver kastet ovre i cs-filen?
Lyder som om du catcher dine exceptions for langt nede. Hvis du catcher dine exceptions et sted hvor du ikke kan gøre noget ved den, så er der ikke meget pointe i at catche dem.
Flyt try catch ud på et niveau, hvor du kan gøre noget fornuftigt. I en web app vil det typisk være i .aspx.cs filen.
Hvor du gerne vil have en god opdeling i lag, så catcher du exceptions nede i den database klasse og thrower en ny exception som du har defineret - og den catcher du oppe i din code behind.
Min try catch virker fint kan bare ikke fange den længere oppe, da jeg ikke ved hvordan, ellers er det måske mig der misforstår??? virker ikke som om at jeg kan komme videre herfra. Så jeg lukker. Vil du have pointne???
namespace Arne { public class NumException : Exception { public NumException(string s) : base(s) { } } public class NumGen { private static Random rng = new Random(); public static int GenOne() { int num = rng.Next(10); if(num == 0) { throw new NumException("Oops we got a zero"); } return num; } } }
arne_v: tak for eksempel, jeg prøver at se på det :)
Synes godt om
Ny brugerNybegynder
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.