Ïîìîãíè íè äà íàïðàâèì Uroci.net ïî - áîãàò! Äîáàâè óðîê
Êàòåãîðèè Äðóãè óðîöè Adobe Photoshop Adobe Illustrator Adobe Flash Adobe Fireworks DreamWeaver CSS è HTML Corel Draw Image Ready PHP SEO CMS Microsoft Windows Microsoft Word Microsoft Excel PowerPoint Microsoft Access Microsoft Publisher Linux Visual basic
JavaScript Ajax 3ds Max Maya 3D C++ Sound Forge Gimp SWiSH

Îáðàáîòâàíå íà ãðåøêè ïî âðåìå íà èçïúëíåíèå

bubust   òðóäíîñò:    âèäÿí: 1931



8.2.3 Êëàñîâå íà èçêëþ÷åíèÿòà - Exception classes

Ñèñòåìíîòî ïðîñòðàíñòâî îò èìåíà (System namespace) ñúäúðæà êëàñà Exception, êîéòî å áàçîâ êëàñ çà ñúùåñòâåíè êîëåêöèè íà ïðîèçõîæäàùèòå êëàñîâå (ñïèñúêúò ñëåäâà). Çàáåëåæåòå, ÷å èäåíòèôèêàöèèòå èíäèöèðàò íàñëåäÿåìîñòòà.

EntryPointNotFoundException (ïåòàòà îòçàä íàïðåä) íàñëåäÿâà îò TypeLoadException.

Exception

ApplicationException

SystemException

AccessException

FieldAccessException

MethodAccessException

MissingMemberException

MissingFieldException

MissingMethodException

AppDomainUnloadedException

AppDomainUnloadInProgressException

ArgumentException

ArgumentNullException

ArgumentOutOfRangeException

DuplicateWaitObjectException

ArithmeticException

DivideByZeroException

NotFiniteNumberException

OverflowException

ArrayTypeMismatchException

BadImageFormatException

CannotUnloadAppDomainException

ContextMarshalException

CoreException

ExecutionEngineException

IndexOutOfRangeException

StackOverflowException

ExecutionEngineException

FormatException

InvalidCastException

InvalidOperationException

MulticastNotSupportedException

NotImplementedException

NotSupportedException

PlatformNotSupportedException

NullReferenceException

OutOfMemoryException

RankException

ServicedComponentException

TypeInitializationException

TypeLoadException

EntryPointNotFoundException

TypeUnloadedException

UnauthorizedAccessException

WeakReferenceException

URIFormatException

Èìåòî íà êëàñà ðàçëè÷àâà åäèí òèï ãðåøêà (exception) îò äðóã. Ñâîéñòâàòà è ìåòîäèòå íà exception îáåêòà ñå íàñëåäÿâàò îò áàçîâèÿ êëàñ Exception.

Êîãàòî ïèøåì Catch áëîêîâå, âèíàãè ïðåä íàñ ñòîè âúïðîñà äàëè äà âïðèì÷èì ðîäîâèÿ exception êëàñ:

Sub test( )

Try

...

Catch e As Exception

...

End Try

End Sub

èëè ñïåöèôè÷íè exception êëàñîâå. Ðàçáèðà ñå, ìîìåíòà äà âïðèì÷èì ñïåöèôè÷åí exception êëàñ å êîãàòî èñêàìå äà îáðàáîòèì ãðåøêè ðàçëè÷íî áàçèðàíè îò òåõíèÿ êëàñ. Èìà ñëó÷àè, êîãàòî ìîæå äà èñêàìå äà èçïîëçâàìå ïðåäèìñòâàòà íà ÷ëåíîâå íà îòäåëåí exception êëàñ, êîéòî íå å èçïúëíåí â Exception base class. Íàïðèìåð ArgumentException êëàñà èìà ñâîéñòâî ParamName êîåòî âðúùà èìåòî íà ïàðàìåòúðà, êîéòî óêàçâà ãðåøêàòà .

Ñåãà, àêî ïðîñòî âïðèì÷âàìå ðîäîâèÿ Exception class, êàêòî â êîäà:

Sub test( )

Try

Dim s, d As String

s = "c:temp.txt"

' îïèò çà êîïèðàíå íà ôàéëà â íåâàëèäåí ïúò

FileCopy(s, d)

Catch e As Exception

MsgBox(e.Message)

End Try

End Sub

òîãàâà íå ìîæåì äà èçïîëçâàìå ïðåäèìñòâîòî íà ñâîéñòâî ParamName. Îò äðóãà ñòðàíà, àêî âïðèì÷èì êëàñà ArgumentException, êàòî â êîäà:

Sub test1( )

Try

Dim s, d As String

s = "c:temp.txt"

' îïèò çà êîïèðàíå íà ôàéëà â íåâàëèäíà öåë

FileCopy(s, d)

Catch e As ArgumentException

MsgBox(e.Message & " Parameter: " & e.ParamName)

End Try

End Sub

òîãàâà ìîæåì äà ïîëó÷èì èìåòî íà ïàðàìåòúðà .

Ïîãëåä âúðõó ÷ëåíîâåòå íà êëàñà Exception:

Message property-Ñòðèíã, ñúäúðæàù ñúîáùåíèåòî çà ãðåøêà.

Source property-Ñòðèíã, êîéòî îïèñâà àïëèêàöèÿòà èëè îáåêòà ïðè÷èíèëè ãðåøêàòà.

StackTrace property-Ñòðèíã, êîéòî ñúäúðæà òðàñåòî íà ñòåêà íàçàáàâíî ïðåäè äà ñå ïîÿâè ãðåøêàòà.

TargetSite property-Ñòðèíã, êîéòî äàâà ìåòîäà, êîéòî äàâà ãðåøêàòà.

ToString method-Ñòðèíã, êîéòî âðúùà ïúëíîòî èìå íà ãðåøêàòà, âåðîÿòíî ñúîáùåíèå çà ãðåøêà, èìåòî íà âúòðåøíàòà ãðåøêà è òðàñåòî íà ñòåêà . Ñèíòàêñèñ:

ToString( )

Ïðåäñòàâåòå ñè, ÷å ñëåäíèÿ êîä ñå ñúñòîè îò òðè ïîäïðîãðàìè . Ïúðâàòà, Exception0, ñúäúðæà èíñòðóêöèÿ Try...Catch....  áëîêà Try, ïîäïðîãðàìà Exception0 âèêà ïîäïðîãðàìà Exception1, êîÿòî âèêà ïîäïðîãðàìà Exception2.

Sub Exception0( )

Dim s As String

Try

Exception1( )

Catch e As Exception

s = "Message: " & e.Message

s = s & ControlChars.CrLf & "Source: " & e.Source

s = s & ControlChars.CrLf & "Stack: " & e.StackTrace

s = s & ControlChars.CrLf & "Target: " & e.TargetSite.Name

s = s & ControlChars.CrLf & "ToString: " & e.ToString

debug.writeline(s)

End Try

End Sub

Sub Exception1( )

Exception2( )

End Sub

Sub Exception2( )

Throw New ArgumentNullException( )

End Sub

 Exception2, èìà åäèí ðåä îò êîä, êîéòî èçïúëíÿâà èíñòðóêöèÿ Throw, êîÿòî "õâúðëÿ" ãðåøêàòà. Òîâà å ïîäîáíî íà ïðåäèçâèêâàíå íà ãðåøêà ñ ìåòîä Err.Raise. Äàæå, êàêòî ìîæå äà âèäèòå ïðè êëþ÷îâà äóìà New, èíñòðóêöèÿ Throw âñúùíîñò ñúçäàâà îáåêò îò åäèí îò òèïîâåòå exception.

Èçõîäúò îò âèêàíåòî íà Exception0 e:

Message: argument can't be null

Source:

Stack: at WindowsApplication3.Form1.Exception2( )

in C:VBNETForm1.vb:line 68

at WindowsApplication3.Form1.Exception1( )

in C:VBNETForm1.vb:line 66

at WindowsApplication3.Form1.Exception0( )

in C:VBNETForm1.vb:line 53

Target: Exception2

ToString: System.ArgumentNullException: argument can't be null

at WindowsApplication3.Form1.Exception2( )

in C:VBNETForm1.vb:line 68

at WindowsApplication3.Form1.Exception1( )

in C:VBNETForm1.vb:line 66

at WindowsApplication3.Form1.Exception0( )

in

C:VBNETForm1.vb:line 53


Ñòðàíèöè: «1 2 3

Ðåãèñòðèðàéòå ñå, çà äà äîáàâèòå êîìåíòàð


© Âñè÷êè ïðàâà çàïàçåíè. 2006-2008. Created by: Site.bg
Ïðåïîðú÷âàìå: IT Íîâèíè | Êèíî è èãðè | Äèïëîìà.áã | Paparak.bg | Òóíèíã Ïîðòàë | uchenik.com | TRAVEL òóðèçúì | Ðåôåðàòè | AmAm.bg | Èäå.ëè | Êóðñîâè ðàáîòè | AnimeS-bg.com | Ôîòî Ôîðóì | Çàïîçíàíñòâà | Ìðåæà îò ïðèÿòåëè | IT Light | Spodeli.net | Ôîòî-Êóëò | IDG.BG | Teenproblem.net | Áëîã - Îáðàçîâàíèå | Fresh-BG.com | Hanovete.com | Bulfleet.com | Mythlands.com | Ohoboho.com | Êàçàíëúê.Com | News24 | Setcom.bg | Atol.bg | Elmaz.com | MobileBulgaria.com