Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Vilken typ av Exception skall användas vid felhantering.

Postades av 2003-05-22 09:17:53 - Christer Engholm, i forum asp.net generellt, Tråden har 5 Kommentarer och lästs av 909 personer

Hur gör ni?

Använder ni enbart basen Exception för att fånga alla fel eller specificerar ni varje typ:
OlDbException, FormatException o.s.v?


Svara

Sv: Vilken typ av Exception skall användas vid felhantering.

Postades av 2003-05-22 10:37:44 - Mikael Sand

Det beror ju lite på eller hur ? :-)

Jag brukar tänka som såhär: Om ett fel uppstår kommer jag kunna ta hand om det?
Om svaret är ja tar jag reda på vilken exception som FÖRST fångar felet.
Om jag kopplar mot en SQL-server är det en SQL-exception. Kanske servern är nere och jag vill skicka ett mail.

Om svaret är nej så fångar jag en vanlig exception. Om det nu skulle vara så att felet uppstår och ter sig på ett sådant sätt att en annan programmerare vill hantera felet så finns ju "InnerException" som håller det egetliga felet.

Kodexempel:
<code>
Public Fuction GetData() as DataSet
try
'' Kod för att anropa DB
catch sqlex as SQLExcetion
'' Fel i DB-anrop. Skicka mail
MyTools.SendMail("admin", sqlex)
return nothing
catch ex as exception
'' Annat fel
MyTools.WriteToLog(ex)
return nothing
End try
'' Returnera datasettet
End funtion
</code>

Mikael.NET


Svara

Sv: Vilken typ av Exception skall användas vid felhantering.

Postades av 2003-05-22 12:45:14 - Christer Engholm

OK, jag ser även att du kör Return Nothing efter Exception. Själv brukar jag köra Exit Function, vilket sätt är "bäst", eller skall man köra båda?


Svara

Sv: Vilken typ av Exception skall användas vid felhantering.

Postades av 2003-05-25 15:53:57 - Ola Lindfeldt

Jag har för mig att Return ska vara lite snabbare. (högst marginellt säkert men kan ändå vara intressant om du har funktioner som anropas tusentals ggr).
Du behöver aldrig skriva exit efter return som ju betyder returnera/avsluta/exit.
Ola


Svara

Sv: Vilken typ av Exception skall användas vid felhantering.

Postades av 2003-05-26 13:09:10 - Jarle Skogheim

Om du inte kan hantera ett exception men fortfarande fångar upp det kan ingen annan programmera fånga upp det senare i kedjan med hjälp av InnerException. För att det skall fungera måste du kasta ett nytt exception där du lägger med ursprungs-exceptionet.

Jag brukar skapa en egen (eller flera) exceptionklass som jag kan kasta vidare upp till användargränssnitt så det kan visa upp en snygg text som berättar vad som har gått fel, och det kan loggas på ett bra sätt. Din exceptionklass kan ju också ta hand om loggningen.


// Jarle


Svara

Sv: Vilken typ av Exception skall användas vid felhantering.

Postades av 2003-05-26 14:50:10 - Mikael Sand

Bra idé och lösning om man har ett litet störra proekt.

Jag har kört varianten att man fångar exception för att se om man kan ta hand om det och om man inte kan det kastar man ett nytt av sin egen typ, eller av samma beroende på vad som känns bäst.


Vad gäller ovan med exit function så har jag för mig att kompilatorn tar din Exit Function och ändrar det till ett return.

Saken och skillnaden som jag har märkt (och nu snackar vi subjektiv kodstil här) är att jag numera aldrig sätter ett värde för det som ska returneras från en funktion utan bara kör med return. Att sätta värdet skapar bara förvirring + att du med en return kan hoppa ur funktionen rakt av på en rad istället för två som tidigare.

Nu är vi lååångt från exceptions :-)

Exempel:
<code>
Public function GetData(IsAuthenticated as boolean) as datatable
If isAuthenticated then
return New Datastore().GetData() ' returnerar datatable
End if
End function

Public function GetData(IsAuthenticated as boolean) as datatable
dim dt as datatable()

If isAuthenticated then
dt = New Datastore().GetData() ' returnerar datatable
End if

GetData = dt
End function
</code>

Antalet rader och likande hantering torde framgå i exemplet.

//Mikael.NET


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 155
27 952
271 704
6 124
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies