Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Trotz try/catch mit Response.Write wird ASP.NET-Anwendung beendet
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

Trotz try/catch mit Response.Write wird ASP.NET-Anwendung beendet

beantworten | zitieren | melden

Hi,

bei meinem Programm soll der Benutzer die Addresse seiner Datenbank eingeben können. D.h. dabei können Fehler durch die Benutzereingabe auftreten, die ich abfangen möchte. Ich hab das jetzt versucht so umzusetzen:



        public static string AccessPfad = "C:\\Tpwerte.mdb";

        protected void Page_Load(object sender, EventArgs e)
        {
            
            try
            {
                AccessDataSource1.DataFile = AccessPfad;
            }

            catch (Exception a)
            {
                // Give the user some information, but                                  
                // stay on the default page
                Response.Write("<h2>Default Page Error</h2>\n");
                Response.Write("<p>Provide as much information here as is " +
                  "appropriate to show to the client.</p>\n");
                Response.Write("Return to the <a href='Default.aspx'>" +
                    "Default Page</a>\n");
                Response.Write(a);
                    
            }
        }

Allerdings wird meine alternative Fehlerseite nicht aufgerufen, sondern weiterhin der Fehler angezeigt und die ASP Anwendung kann nicht weitergeführt werden.

Kann mir da jemand weiterhelfen?
Grüße und Danke im Vorraus
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Perhalo am .
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Perhalo,

du schreibst mit "Response.Write(...)" einen String raus, und dein letzter ist nun die komlette Exception. in deinem Fall "a".

Bau dir den String zusammen, eventuell unten die Exception dran und schicke ihn (dein HTML _und_ die Exception, wenn du das willst) komplett in das Response.Write. Dann sollte es gehen.

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Ich glaube der Fehler liegt woanders. Hauptsächlich daran, dass er den catch Block überhaupt nicht ausführt. Das vermute ich, weil alles was ich in der global.asax.cs unter nicht behandelten Fehlern ausführen lasse, er auch macht.

Das funktioniert zwar, so dass ich den Benutzer bei einem Fehler immer wieder zu derselben Stelle zurückführen kann. Allerdings möchte ich ja hier auch anzeigen können, dass ein falscher Pfad eingegen wurde bzw. eine nicht geeignete Datenbank vorliegt.
private Nachricht | Beiträge des Benutzers
MrSparkle
myCSharp.de - Team

Avatar #avatar-2159.gif


Dabei seit:
Beiträge: 5991
Herkunft: Leipzig

beantworten | zitieren | melden

Hi Perhalo,

wird denn dann überhaupt die Page_Load-Methode ausgeführt?

Christian
Weeks of programming can save you hours of planning
private Nachricht | Beiträge des Benutzers
Coffeebean
myCSharp.de - Team

Avatar #avatar-3295.gif


Dabei seit:
Beiträge: 2461
Herkunft: Deutschland/Schweiz

beantworten | zitieren | melden

Hallo Perhalo,

wieso prüfst du die Datenbankverbindung nicht kurz im try/catch? Hauts hin ist gut, wenn nciht sollte er in den catch gehen und alles da ausführen, was du beschreibst.

Gruss

Coffeebean
private Nachricht | Beiträge des Benutzers
Perhalo
myCSharp.de - Member



Dabei seit:
Beiträge: 23

Themenstarter:

beantworten | zitieren | melden

Jo,

halt jedesmal, wenn ich das entprechende Formular öffnen will, wird Page_Load ausgeführt. Mit einer falschen Addresse für die Datenbank bekomme ich den Fehler

Serverfehler in der Anwendung /.
Datei 'C:\Tpwerte.mdb' nicht gefunden.


Ausnahmedetails: System.Data.OleDb.OleDbException: Datei 'C:\Tpwerte.mdb' nicht gefunden.


und so weiter...


Was ganz interessant ist:

Habe jetzt weitergemacht und versuche auf meine TemplateFields zuzugreifen. Wenn ich einfach nur das hier dazufüge:



            try
            {
                AccessDataSource1.DataFile = AccessPfad;
                Einzelspur_LI_SOLL = ((TextBox)GridView1.FindControl("TextBox4")).ReadOnly;
               }

wird die Exception ausgelöst und ich erhalte das gewünschte Ergebnis. Allerdings triggert er auf den Fehler der neuen Zeile und nicht auf den der alten...

Add Coffeebean: Wenn ich die Verbindung richtig einstelle geht es ohne Probleme. Allerdings kann es ja sein, dass der Benutzer etwas falsches als Pfad oder eine falsche Datenbank eingibt. Das möchte ich natürlich abfangen. Darum möchte ich, dass die Anwendung nicht einfach abschmiert, wenn der Benutzer eine falsche Eingabe macht.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Perhalo am .
private Nachricht | Beiträge des Benutzers