jj: try to fix unhandled exception

This commit is contained in:
Jonathan Jenne 2018-06-29 12:58:47 +02:00
parent bf43248270
commit 88feb253d1
3 changed files with 173 additions and 64 deletions

View File

@ -40,9 +40,17 @@ Public Class ClassDatabase
Return dt Return dt
Catch ex As SqlException Catch ex As SqlException
CatchDatabaseTimeout(ex, sql_command) Dim handled = CatchDatabaseTimeout(ex, sql_command)
Return Nothing If Not handled Then
If userInput = True Then
MsgBox("Error in Return_Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Unexpected error in Return_Datatable: " & ex.Message, True)
ClassLogger.Add("#SQL: " & sql_command, False)
End If
Return False
Catch ex As Exception Catch ex As Exception
If userInput = True Then If userInput = True Then
MsgBox("Error in Return Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical) MsgBox("Error in Return Datatable - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
@ -71,9 +79,17 @@ Public Class ClassDatabase
Return dt Return dt
Catch ex As SqlException Catch ex As SqlException
CatchDatabaseTimeout(ex, sql_command) Dim handled = CatchDatabaseTimeout(ex, sql_command)
Return Nothing If Not handled Then
If userInput = True Then
MsgBox("Error in Return_Datatable_CS - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Unexpected error in Return_Datatable_CS: " & ex.Message, True)
ClassLogger.Add("#SQL: " & sql_command, False)
End If
Return False
Catch ex As Exception Catch ex As Exception
If userInput = True Then If userInput = True Then
MsgBox("Error in Return_Datatable_CS - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical) MsgBox("Error in Return_Datatable_CS - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
@ -101,9 +117,17 @@ Public Class ClassDatabase
Return True Return True
Catch ex As SqlException Catch ex As SqlException
CatchDatabaseTimeout(ex, sql_command) Dim handled = CatchDatabaseTimeout(ex, sql_command)
Return Nothing If Not handled Then
If userInput = True Then
MsgBox("Error in Execute non query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Unexpected error in Execute_non_Query: " & ex.Message, True)
ClassLogger.Add("#SQL: " & sql_command, False)
End If
Return False
Catch ex As Exception Catch ex As Exception
If userInput = True Then If userInput = True Then
MsgBox("Error in Execute non query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical) MsgBox("Error in Execute non query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
@ -133,9 +157,17 @@ Public Class ClassDatabase
Return result Return result
Catch ex As SqlException Catch ex As SqlException
CatchDatabaseTimeout(ex, sql_command) Dim handled = CatchDatabaseTimeout(ex, sql_command)
Return Nothing If Not handled Then
If userInput = True Then
MsgBox("Error in Execute non query - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
End If
ClassLogger.Add("Unexpected error in Execute_non_Query: " & ex.Message, True)
ClassLogger.Add("#SQL: " & sql_command, False)
End If
Return False
Catch ex As Exception Catch ex As Exception
If userInput = True Then If userInput = True Then
MsgBox("Error in Execute Scalar - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical) MsgBox("Error in Execute Scalar - Error-Message:" & vbNewLine & ex.Message & vbNewLine & "SQL-Command:" & vbNewLine & sql_command, MsgBoxStyle.Critical)
@ -213,7 +245,7 @@ Public Class ClassDatabase
End Try End Try
End Function End Function
Public Shared Sub CatchDatabaseTimeout(ex As SqlException, sql_command As String) Public Shared Function CatchDatabaseTimeout(ex As SqlException, sql_command As String)
Dim FatalErrors As New List(Of Integer) From {-1, -2, 121} Dim FatalErrors As New List(Of Integer) From {-1, -2, 121}
If FatalErrors.Contains(ex.Number) Then If FatalErrors.Contains(ex.Number) Then
@ -221,6 +253,10 @@ Public Class ClassDatabase
ClassLogger.Add("Network timeout error in Return_Datatable: " & ex.Message, True) ClassLogger.Add("Network timeout error in Return_Datatable: " & ex.Message, True)
ClassLogger.Add("#SQL: " & sql_command, False) ClassLogger.Add("#SQL: " & sql_command, False)
Return True
Else
Return False
End If End If
End Sub End Function
End Class End Class

View File

@ -6,6 +6,7 @@ Public Class ClassFolderWatcher
Public Shared FolderWatcher As FileSystemWatcher Public Shared FolderWatcher As FileSystemWatcher
Public Shared FolderWatcher_SCAN As FileSystemWatcher Public Shared FolderWatcher_SCAN As FileSystemWatcher
Public Shared Function Restart_FolderWatch() Public Shared Function Restart_FolderWatch()
Try
If FolderWatcher.EnableRaisingEvents = True Then If FolderWatcher.EnableRaisingEvents = True Then
'Gestartet also Stoppen 'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False FolderWatcher.EnableRaisingEvents = False
@ -19,8 +20,12 @@ Public Class ClassFolderWatcher
FW_started = True FW_started = True
SaveConfigValue("FW_started", "True") SaveConfigValue("FW_started", "True")
End If End If
Catch ex As Exception
ClassLogger.Add($"Error in Restart_FolderWatch: {ex.Message}", False)
End Try
End Function End Function
Public Shared Function Restart_FolderWatchSCAN() Public Shared Function Restart_FolderWatchSCAN()
Try
If FolderWatcher_SCAN.EnableRaisingEvents = True Then If FolderWatcher_SCAN.EnableRaisingEvents = True Then
'Gestartet also Stoppen 'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False FolderWatcher_SCAN.EnableRaisingEvents = False
@ -34,6 +39,9 @@ Public Class ClassFolderWatcher
FWSCAN_started = True FWSCAN_started = True
SaveConfigValue("FWSCAN_started", "True") SaveConfigValue("FWSCAN_started", "True")
End If End If
Catch ex As Exception
ClassLogger.Add($"Error in Restart_FolderWatchSCAN: {ex.Message}", False)
End Try
End Function End Function
Public Shared Function StartStop_FolderWatch() Public Shared Function StartStop_FolderWatch()
Try Try

View File

@ -58,39 +58,103 @@ Public Class ClassInit
End Sub End Sub
Public Sub Init_Folderwatch() Public Sub Init_Folderwatch()
Try Try
'Die FolderWatch starten Dim sql As String = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & CURRENT_USER_ID
Dim sql1 = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & CURRENT_USER_ID Dim folderwatchPath = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
Dim folderwatch = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
sql1 = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & CURRENT_USER_ID folderwatchPath = IIf(IsDBNull(folderwatchPath), "", folderwatchPath)
Dim folderwatch_SCAN = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
If Not folderwatch Is Nothing Then If folderwatchPath = String.Empty Then
CURRENT_FOLDERWATCH = folderwatch ClassLogger.Add("Init_Folderwatch: folderwatchPath is empty", True)
If FW_started = True Then
If CURRENT_FOLDERWATCH = "" Then
FW_started = False FW_started = False
SaveConfigValue("FW_started", "False") SaveConfigValue("FW_started", "False")
Else Exit Sub
FW_ISSTARTED = True
ClassFolderWatcher.StartStop_FolderWatch()
End If End If
If Not IO.Directory.Exists(folderwatchPath) Then
ClassLogger.Add("Init_Folderwatch: folderwatchPath does not exists or is invalid path", True)
FW_started = False
SaveConfigValue("FW_started", "False")
Exit Sub
End If End If
Else
ClassLogger.Add("Init_Folderwatch: folderwatch path is nothing!", True) CURRENT_FOLDERWATCH = folderwatchPath
End If
If Not folderwatch_SCAN Is Nothing Then FW_started = True
CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
If FWSCAN_started = True Then
FW_ISSTARTED = True FW_ISSTARTED = True
ClassFolderWatcher.StartStop_FolderWatchSCAN() ClassFolderWatcher.StartStop_FolderWatch()
End If
Else
ClassLogger.Add("Init_Folderwatch: folderwatch_SCAN path is nothing!", True)
End If
Catch ex As Exception Catch ex As Exception
ClassLogger.Add("Unexpected Error in Init_Folderwatch: " & ex.Message, True) MsgBox($"Init_Folderwatch: Unexpected error while starting FolderWatch: {ex.Message}", MsgBoxStyle.Critical)
ClassLogger.Add($"Init_Folderwatch: Unexpected error: {ex.Message}", True)
START_INCOMPLETE = True START_INCOMPLETE = True
End Try End Try
Try
Dim sql As String = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & CURRENT_USER_ID
Dim folderwatchScanPath = ClassDatabase.Execute_Scalar(sql, MyConnectionString, True)
folderwatchScanPath = IIf(IsDBNull(folderwatchScanPath), "", folderwatchScanPath)
If folderwatchScanPath = String.Empty Then
ClassLogger.Add("Init_Folderwatch: folderwatchScanPath is empty", True)
FWSCAN_started = False
SaveConfigValue("FW_started", "False")
Exit Sub
End If
If Not IO.Directory.Exists(folderwatchScanPath) Then
ClassLogger.Add("Init_Folderwatch: folderwatchScanPath does not exists or is invalid path", True)
FWSCAN_started = False
SaveConfigValue("FW_started", "False")
Exit Sub
End If
CURRENT_SCAN_FOLDERWATCH = folderwatchScanPath
FWSCAN_started = True
FW_ISSTARTED = True
ClassFolderWatcher.StartStop_FolderWatchSCAN()
Catch ex As Exception
MsgBox($"Init_Folderwatch: Unexpected error while starting FolderWatchScan: {ex.Message}", MsgBoxStyle.Critical)
ClassLogger.Add($"Init_Folderwatch: Unexpected error: {ex.Message}", True)
START_INCOMPLETE = True
End Try
'Try
' 'Die FolderWatch starten
'Dim sql1 = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'DEFAULT' AND USER_ID = " & CURRENT_USER_ID
' Dim folderwatch = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
' sql1 = "SELECT FOLDER_PATH FROM TBGI_FOLDERWATCH_USER WHERE FOLDER_TYPE = 'SCAN' AND USER_ID = " & CURRENT_USER_ID
' Dim folderwatch_SCAN = ClassDatabase.Execute_Scalar(sql1, MyConnectionString, True)
' If Not folderwatch Is Nothing Then
' CURRENT_FOLDERWATCH = folderwatch
' If FW_started = True Then
' If CURRENT_FOLDERWATCH = "" Then
' FW_started = False
' SaveConfigValue("FW_started", "False")
' Else
' FW_ISSTARTED = True
' ClassFolderWatcher.StartStop_FolderWatch()
' End If
' End If
' Else
' ClassLogger.Add("Init_Folderwatch: folderwatch path is nothing!", True)
' End If
' If Not folderwatch_SCAN Is Nothing Then
' CURRENT_SCAN_FOLDERWATCH = folderwatch_SCAN
' If FWSCAN_started = True Then
' FW_ISSTARTED = True
' ClassFolderWatcher.StartStop_FolderWatchSCAN()
' End If
' Else
' ClassLogger.Add("Init_Folderwatch: folderwatch_SCAN path is nothing!", True)
' End If
'Catch ex As Exception
' ClassLogger.Add("Unexpected Error in Init_Folderwatch: " & ex.Message, True)
' START_INCOMPLETE = True
'End Try
End Sub End Sub
Public Sub InitUserLogin() Public Sub InitUserLogin()
Try Try
@ -154,7 +218,8 @@ Public Class ClassInit
sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & CURRENT_USER_ID & " AND UPPER(MODULE) = UPPER('Global-Indexer')" sql = "DELETE FROM TBDD_USER_MODULE_LOG_IN WHERE USER_ID = " & CURRENT_USER_ID & " AND UPPER(MODULE) = UPPER('Global-Indexer')"
ClassDatabase.Execute_non_Query(sql, True) ClassDatabase.Execute_non_Query(sql, True)
sql = "INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,MODULE) VALUES (" & CURRENT_USER_ID & ",'Global-Indexer')" sql = $"INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID, MODULE, CLIENT_ID, CONNECTION_STRING) VALUES ({CURRENT_USER_ID}, '{"Global-Indexer"}', 1, '')"
'sql = "INSERT INTO TBDD_USER_MODULE_LOG_IN (USER_ID,MODULE) VALUES (" & CURRENT_USER_ID & ",'Global-Indexer')"
ClassDatabase.Execute_non_Query(sql) ClassDatabase.Execute_non_Query(sql)
sql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE Upper(MODULE) = UPPER('Global-Indexer')" sql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE Upper(MODULE) = UPPER('Global-Indexer')"