Try Catch non mi funziona

  1. 6 days ago

    con xojo 2019 versione 2 ho provato a causare un eccezione per verificare il funzionamento di Try .. Catch End Try ; l'origine dati odbc AS01 non esiste quindi eseguendo il programma va in errore generando una exception; questa exception però, non viene controllata dal catch sottostante l'istruzione conn400.connect ma il programma si ferma proprio su di essa.
    cosa può essere ??
    grazie

    Function Connetti(utente as text, password as text) As Boolean
      var conn400 as ODBCDatabase= new ODBCDatabase
      
       Conn400.DataSource="AS01"
      Conn400.UserName=utente
      Conn400.Password=password
      
      try
        conn400.Connect
      Catch e As DatabaseException
        MessageBox ("Errore")
        return False
      end try
     
      Return True
     
    End Function
  2. Domenico C

    Nov 7 Milano

    Ciao @Corrado Z ,

    prova a non specificare l'eccezzione:

    Function Connetti(utente as text, password as text) As Boolean
      var conn400 as ODBCDatabase= new ODBCDatabase
      
       Conn400.DataSource="AS01"
      Conn400.UserName=utente
      Conn400.Password=password
      
      try
        conn400.Connect
      Catch
        MessageBox ("Errore")
        return False
      end try
     
      Return True
     
    End Function
  3. grazie Domenico per la risposta,
    ho provato ma è come prima..

  4. Massimo V

    Nov 7 Pre-Release Testers, Xojo Pro Europe (Germany, Würzburg)

    Attenzione che in debug se hai "Break On Exceptions" abilitato si ferma comunque. Ma se continui l'esecuzione l'applicazione non va in crash.

  5. era proprio quello.
    GRAZIE a tutti

  6. Antonio R

    Nov 7 Pre-Release Testers, Xojo Pro, Third Party Store Europe (Italy)

    Se non vuoi disabilitare la verifica in debug delle eccezioni ma vuoi saltare questa perché, ad esempio, hai già verificato che funziona
    puoi inserire prima del try

    #Pragma BreakOnExceptions False

    e dopo l'end try
    #Pragma BreakOnExceptions Auto

    In pratica i parametri di #Pragma BreakOnExceptions sono
    False se non vuoi andare nel debug quando succede una eccezione (come se disabilitassi da li fino alla fine del metodo il comando "Break On Exceptions" che Massimo ti ha segnalato)

    True se vuoi riabilitarle fino alla fine del metodo (a prescindere dall'impostazione "Break On Exceptions")

    Auto se vuoi riabilitarle in base alla scelta dell'impostazione "Break On Exceptions"

or Sign Up to reply!