[ KaAmIkAzA @ 23.04.2008. 08:00 ] @
Haj. Mislio sam da bi bilo dobro da neko ko se razumije u obradi gresaka da postavi kao tutor o tome. Neke stvari koje ce olaksati nama pocetnicima da program zbog nekih banalnih gresaka ne puca i kako ih sve pohvatati. Ako moze koji promjer i objasnjenje bio bih vam zahvalan a vjerujem i vecina ostalih ljudi. Poz.
[ dava @ 23.04.2008. 11:27 ] @
Evo za sugradjana:

Code:
Option Explicit
Dim a As Double
Dim b As Double
Dim Rez As Double

Private Sub Command1_Click()
On Error GoTo err

  a = 8
  b = 0
  Rez = a / b

Exit Sub ' ako nije doslo do greske program kad dodje do
         ' ove linije, izlazi iz procedure
err:
  If err.Description = "Division by zero" Then   ' Ovdje obradjujemo tu gresku
      MsgBox "Nemoguce je djeljenje sa nulom"
  Else
      Debug.Print err.Description   ' ili printamo novu gresku pa ce mo je kasnije obraditi
  End If

End Sub


ili

Code:

Option Explicit
Dim a As Double
Dim b As Double
Dim Rez As Double

Private Sub Command1_Click()
On Error GoTo err

  a = 8
  b = 0
ponovo:
  Rez = a / b

Exit Sub ' ako nije doslo do greske program kad dodje do
         ' ove linije, izlazi iz procedure
err:

  If err.Description = "Division by zero" Then   ' Ovdje obradjujemo tu gresku
      b = 1
      GoTo ponovo
  Else
      Debug.Print err.Description   ' ili printamo novu gresku pa ce mo je kasnije obraditi
  End If

End Sub
[ galahad @ 23.04.2008. 18:48 ] @
Za hvatanje greshaka je pametnije koristiti Err.Number umesto Err.Description, jer nije bash efikasno kucati opise greshaka, ima i dugachkih opisa... Tako da, umesto:
Code:

  If err.Description = "Division by zero" Then   ' Ovdje obradjujemo tu gresku
      MsgBox "Nemoguce je djeljenje sa nulom"
  Else
      Debug.Print err.Description   ' ili printamo novu gresku pa ce mo je kasnije obraditi
  End If

pokushaj sa
Code:

  Select Case Err.Number
  Case 6 '*** Ovo je Division by zero greshko
      MsgBox "Nemoguce je djeljenje sa nulom"
  Case Else
      MsgBox "Desila se nepredvidjena greska!"  & vbCrLf & "Kod greske: " & Trim(Cstr(Err.Number)) & vbCrLf & "Opis: " & vbCrLf & Err.Description
  End Select