Citat:
Shadowed: Tako napisano nije velika razlika (mada i tu imas ceo red umesto keyword-a, al' ajd').
Medjutim, Try...Catch...Finally (zaboravio si Finally

) ima vise mogucnosti.
Jedna je to sto nije o as Object nego moze biti Exception class ili neka nasledjena iz nje (potpuno custom, mozes dodati sta hoces u tu klasu i popuniti je potrebnim podacima tamo gde se izvrsava throw exception). Znaci, moze sadrzati mnogo vise (i to custom) podataka o kresKi.
Pored toga, mozes imati vise od jednog Catch pri cemu svaki hvata jedan tip greske pa se poziva onaj odgovarajuci blok. Primer:
Code:
Try
System.IO.File.Copy(SourcePath, DestinationPath)
Catch e As PathTooLongException
msgbox("Putanja je preduga")
Catch e As ArgumentException
MsgBox("Argument " & e.ParamName & " is not valid.")
Catch e As FileNotFoundException
MsgBox("File " & e.FileName & " is not found.")
End Try
1. Pa... postoje addin-ovi kao sto je mz tools i mozes lako da napravis "templejt" i da mu dodelis hot key, tako da cak manje "kucas" nego Try

2. evo ja cu da ga standardizujem ako nije vec neko

3. moguce naravno:
Code:
catch:
Select Case Err.Number
Case 123:
' ...
Case 666:
' ...
End Select
Err.Clear
4. pa i to je moguce

- napravis cException klasu, na vrhu forme deklarises Dim exception As New cException,
- mozes lako da napravis da klasi dinamimcki dodajes propertije, i funkcije sto da ne

(pointeri..

)
- onda pozoves throw f-ju: ex.Throw "My Exception thrown" (gde Throw poziva Err.Raise da bi ga uhvatio On Error)
e sad, sto se tice finalyja, moze i to da se simulira, ali uz malo vise gimnastike
Citat:
BTW, do kad traje On Error komanda? Recimo u tom tvom primeru, nece li se i negde kasnije, posle end_try: labele vratiti na catch: labelu ako dodje do greske?
cim se digne greska, poziva se prvi On Error koji je "iznad" (to ne mora da bude On Error u proceduri) linije na kojoj se desila greska.
sto se tice onog mog primera, da ako posle end_try se digne greska bice pozvan taj catch, ali nista nas ne sprecava da imamo vise On Error-a u jednoj proceduri:
Code:
On Error Goto catch1
' ... ovde neki pametan kod koji ce da digne gresku
Goto end_try1
catch1:
MsgBox Err.Description
Err.Clear
end_try1:
' ...
On Error Goto catch2
' ... ovde neki pametan kod koji ce da digne gresku
Goto end_try2
catch2:
MsgBox Err.Description
Err.Clear
end_try2:
Citat:
Shadowed: Jedna je to sto nije o as Object nego moze biti Exception class ili neka nasledjena iz nje (potpuno custom, mozes dodati sta hoces u tu klasu i popuniti je potrebnim podacima tamo gde se izvrsava throw exception).
e vidis u obasicu moze da bude bilo koji objekat, ne samo onaj koji je izveden iz exception klase (ako sam te dobro razumeo, u vb.net-u moze da se hvataju samo objekti koji su izvedeni iz exception klase? nisam siguran da sam te razumeo, jer ne znam sto bi ovi iz ms-a ogranicili tako)
sto se tice obasica, ne pitaj nista, ne smem nista da ti kazem. tj ako ti kazem moracu da te ubijem 