Handling errors

You can use the standard .NET error-handling features to handle errors. Most UltraLite methods throw ULException errors. You can use ULException.NativeError to retrieve the ULSQLCode value assigned to this error. ULException has a Message property, which you can use to obtain a descriptive text of the error. ULSQLCode errors are negative numbers indicating the error type.

For a list of error codes, see Error Messages.

After synchronization, you can use the SyncResult property of the connection to obtain more detailed error information. For example, the following sample illustrates a possible technique for reporting errors that occur during synchronization:

public void Sync()
  {
         try
         {
            _conn.Synchronize( this );
            _inSync = false;
         } 
         catch( ULException uEx ){
            if( uEx.NativeError == ULSQLCode.SQLE_COMMUNICATIONS_ERROR )
            {
               MessageBox.Show(
                    "StreamErrorCode = " + 
                     _conn.SyncResult.StreamErrorCode.ToString() + 
                     "\r\n"
                  + "StreamErrorContext = " + 
                    _conn.SyncResult.StreamErrorContext + "\r\n"
                  + "StreamErrorID = " + 
                    _conn.SyncResult.StreamErrorID + "\r\n"
                  + "StreamErrorSystem = " + 
                    _conn.SyncResult.StreamErrorSystem + "\r\n"
                  );
            }
            else
            {
               MessageBox.Show(uEx.Message);
            }
         }
         catch(System.Exception ex )
         {
            MessageBox.Show(ex.Message);
         }
  }
See also