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
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
If userInput = True Then
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
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
If userInput = True Then
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
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
If userInput = True Then
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
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
If userInput = True Then
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 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}
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("#SQL: " & sql_command, False)
Return True
Else
Return False
End If
End Sub
End Function
End Class

View File

@ -6,34 +6,42 @@ Public Class ClassFolderWatcher
Public Shared FolderWatcher As FileSystemWatcher
Public Shared FolderWatcher_SCAN As FileSystemWatcher
Public Shared Function Restart_FolderWatch()
If FolderWatcher.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False
FW_started = False
'FolderWatch neu instanzieren
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
ClassLogger.Add(" >> FolderWatch neu instanziert", False)
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
SaveConfigValue("FW_started", "True")
End If
Try
If FolderWatcher.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher.EnableRaisingEvents = False
FW_started = False
'FolderWatch neu instanzieren
FolderWatcher = New System.IO.FileSystemWatcher(CURRENT_FOLDERWATCH, "*.*")
ClassLogger.Add(" >> FolderWatch neu instanziert", False)
FolderWatcher.IncludeSubdirectories = False
FolderWatcher.EnableRaisingEvents = True
AddHandler FolderWatcher.Created, AddressOf OnCreated
FW_started = True
SaveConfigValue("FW_started", "True")
End If
Catch ex As Exception
ClassLogger.Add($"Error in Restart_FolderWatch: {ex.Message}", False)
End Try
End Function
Public Shared Function Restart_FolderWatchSCAN()
If FolderWatcher_SCAN.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
FWSCAN_started = False
'FolderWatch neu instanzieren
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
ClassLogger.Add(" >> FolderWatchScan neu instanziert", False)
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveConfigValue("FWSCAN_started", "True")
End If
Try
If FolderWatcher_SCAN.EnableRaisingEvents = True Then
'Gestartet also Stoppen
FolderWatcher_SCAN.EnableRaisingEvents = False
FWSCAN_started = False
'FolderWatch neu instanzieren
FolderWatcher_SCAN = New System.IO.FileSystemWatcher(CURRENT_SCAN_FOLDERWATCH, "*.*")
ClassLogger.Add(" >> FolderWatchScan neu instanziert", False)
FolderWatcher_SCAN.IncludeSubdirectories = False
FolderWatcher_SCAN.EnableRaisingEvents = True
AddHandler FolderWatcher_SCAN.Created, AddressOf OnCreated
FWSCAN_started = True
SaveConfigValue("FWSCAN_started", "True")
End If
Catch ex As Exception
ClassLogger.Add($"Error in Restart_FolderWatchSCAN: {ex.Message}", False)
End Try
End Function
Public Shared Function StartStop_FolderWatch()
Try

View File

@ -58,39 +58,103 @@ Public Class ClassInit
End Sub
Public Sub Init_Folderwatch()
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
Dim sql As String = "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)
End If
Else
ClassLogger.Add("Init_Folderwatch: folderwatch path is nothing!", True)
folderwatchPath = IIf(IsDBNull(folderwatchPath), "", folderwatchPath)
If folderwatchPath = String.Empty Then
ClassLogger.Add("Init_Folderwatch: folderwatchPath is empty", True)
FW_started = False
SaveConfigValue("FW_started", "False")
Exit Sub
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)
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
CURRENT_FOLDERWATCH = folderwatchPath
FW_started = True
FW_ISSTARTED = True
ClassFolderWatcher.StartStop_FolderWatch()
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
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
Public Sub InitUserLogin()
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')"
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)
sql = "SELECT COUNT(*) AS Expr1 FROM TBDD_USER_MODULE_LOG_IN WHERE Upper(MODULE) = UPPER('Global-Indexer')"