Detta resulterar i att "FEL" skrivs ut. Hur kan jag lösa så att resterande skrivs ut?
Det tror jag inte du kan, för när det kastas ett exception så avbryts exekveringskedjan och man börjar "rulla tillbaka stacken" för att se om du har en try-catch någonstans, och om du har det så förtsätter man exekveringskjedjan därifrån.
Så om du inte gör fångar felet och behandlar det själv, så kan du inte göra det du vill. Med andra ord, vill du göra så som du önskar, så kan du skippa OnError() metoden eftersom när den körs så kommer inte resterande del av sidan att exekveras.
Dessutom är det ett FET NO NO att använda sig av Response.Write i ASP.NET eftersom det, precis som du säger, kommer att skrivas ut överst på sidan, du kan alltså inte styra var du vill ha det.
För att åstakomma det du är ute efter så måste du fånga alla felen och skriva ut dessa till en label som du har överst på sidan, som givetviss är Hidden i vanliga fall. Och sedan fortsätta exekveringen efter det att du fångat felet. Det är dock inte en lösning som jag skulle rekomendera, eftersom du faktiskt inte vet om du kan fortsätta din exekvering av sidan, eftersom resterande exekvering kanske behöver din information som skulle skapas när ditt första exception kastades.
När jag kör koden i debugläge så skickas användaren till olika felsidor.
Men när jag kör koden på produktionsserver med IIS så skickas man till felsida (syns i adressfältet). Men man får inte det inte snyggt pressenterat.
Säg att jag försöker surfa till en sida som inte finns, då kommer jag till min "Sidanfinnsinte"-sida. Där kommer ett fult felmedddelande ala .NET:
Server Error in '/' Application.
--------------------------------------------------------------------------------
The resource cannot be found.
Description: HTTP 404. The resource you are looking for (or one of its dependencies) could have been removed, had its name changed, or is temporarily unavailable. Please review the following URL and make sure that it is spelled correctly.
Requested URL: /Error/Notfound.aspx