Я работаю с базой данных сотрудников и у меня возникают проблемы с моим TRY \ CATCH для сохранения записей, так как это относится к обработке исключений.Проблема, с которой я сталкиваюсь, заключается в том, что он запустит TRY и проигнорирует CATCH, что позволит передавать недопустимые данные и сохранять их в файл.Я очень плохо знаком с Visual Basic и не уверен, почему это не работает.Вот мой код для формы:
Option Strict Off
Imports System.IO
Public Class frmEmployeeData
'Variable Declarations
Dim BlnisChanged As Boolean = False
Dim empFirstName As String
Dim empMiddleName As String
Dim empLastName As String
Dim empNumber As Integer
Dim empDepartment As String
Dim empTelephone As String
Dim empExtension As Integer
Dim empEmailAddress As String
Dim empSelection As String
Dim fileName As String
Dim intTryParse As Integer = 0
Private Sub frmEmployeeData_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'Adds the department options to the combo box dropdown list
ComboBoxEmpDepartment.Items.Add("Accounting")
ComboBoxEmpDepartment.Items.Add("Administration")
ComboBoxEmpDepartment.Items.Add("Marketing")
ComboBoxEmpDepartment.Items.Add("MIS")
ComboBoxEmpDepartment.Items.Add("Sales")
End Sub
Sub ClearItems()
'Clears text boxes
txtFirstName.Clear()
txtMiddleName.Clear()
txtLastName.Clear()
txtEmployeeNumber.Clear()
ComboBoxEmpDepartment.ResetText()
txtTelephone.Clear()
txtExtension.Clear()
txtEmailAddress.Clear()
End Sub
Sub SaveItems()
Dim savedEmployeeFile As StreamWriter
Try
'Creates the employee file
savedEmployeeFile = File.CreateText(fileName)
'writes information entered by user into file
savedEmployeeFile.WriteLine(txtFirstName.Text)
savedEmployeeFile.WriteLine(txtMiddleName.Text)
savedEmployeeFile.WriteLine(txtLastName.Text)
savedEmployeeFile.WriteLine(txtEmployeeNumber.Text)
savedEmployeeFile.WriteLine(ComboBoxEmpDepartment.Text)
savedEmployeeFile.WriteLine(txtTelephone.Text)
savedEmployeeFile.WriteLine(txtExtension.Text)
savedEmployeeFile.WriteLine(txtEmailAddress.Text)
'Closes the file
savedEmployeeFile.Close()
BlnisChanged = False
'Clears the text boxes
ClearItems()
Catch ex As Exception
'Throws error if file could Not be created
MessageBox.Show("Unable To Create File. Please Try Again", "Error In Saving")
End Try
End Sub
Sub AppendToFile()
Dim savedEmployeeFile As StreamWriter
Try
'append to file
savedEmployeeFile = File.AppendText(fileName)
'writes information entered by user into file
savedEmployeeFile.WriteLine(txtFirstName.Text)
savedEmployeeFile.WriteLine(txtMiddleName.Text)
savedEmployeeFile.WriteLine(txtLastName.Text)
savedEmployeeFile.WriteLine(txtEmployeeNumber.Text)
savedEmployeeFile.WriteLine(ComboBoxEmpDepartment.Text)
savedEmployeeFile.WriteLine(txtTelephone.Text)
savedEmployeeFile.WriteLine(txtExtension.Text)
savedEmployeeFile.WriteLine(txtEmailAddress.Text)
MessageBox.Show("Employee saved successfully.", "Success")
'Closes the file
savedEmployeeFile.Close()
BlnisChanged = False
'Clears the text boxes
ClearItems()
Catch ex As Exception
MessageBox.Show("No file exists. Please select 'Save As' Option.", "Error In Saving")
End Try
End Sub
Private Sub btnSaveRecord_Click(sender As Object, e As EventArgs) Handles btnSaveRecord.Click
Dim savedEmployeeFile As StreamWriter
'EXCEPTION HANDLING
'verifies first name field content
If txtFirstName.Text = "" Then
MessageBox.Show("First name cannot be blank", "Invalid Entry")
End If
'verifies middle name field content
If txtMiddleName.Text = "" Then
MessageBox.Show("Middle name cannot be blank", "Invalid Entry")
End If
'verifies last name field content
If txtLastName.Text = "" Then
MessageBox.Show("Last name cannot be blank", "Invalid Entry")
End If
'verifies employee number field content
If txtEmployeeNumber.Text = "" Then
MessageBox.Show("Employee number cannot be blank", "Invalid Entry")
ElseIf Not (Integer.TryParse(txtEmployeeNumber.Text, intTryParse)) Then
MessageBox.Show("Employee number must be numeric", "Invalid Entry")
ElseIf CStr(txtEmployeeNumber.Text) < 0 Then
MessageBox.Show("Employee number must be positive", "Invalid Entry")
End If
'verifies department field content
If ComboBoxEmpDepartment.Text = "" Then
MessageBox.Show("Employee department cannot be blank", "Invalid Entry")
End If
'verifies telephone number field content
If txtTelephone.Text = "" Then
MessageBox.Show("Telephone number cannot be blank", "Invalid Entry")
ElseIf Not (Integer.TryParse(txtEmployeeNumber.Text, intTryParse)) Then
MessageBox.Show("Telephone number must be numeric", "Invalid Entry")
End If
'verifies extension field content
If txtExtension.Text = "" Then
MessageBox.Show("Extension cannot be blank", "Invalid Entry")
ElseIf Not (Integer.TryParse(txtExtension.Text, intTryParse)) Then
MessageBox.Show("Extension must be numeric", "Invalid Entry")
ElseIf CInt(txtExtension.Text) < 0 Then
MessageBox.Show("Extension must be positive", "Invalid Entry")
End If
'verifies email address field content
If txtEmailAddress.Text = "" Then
MessageBox.Show("Email Address cannot be blank", "Invalid Entry")
End If
'If no filename exists, will prompt save dialog box and prompt user to save as
If fileName = String.Empty Then
If sfdSave.ShowDialog = System.Windows.Forms.DialogResult.OK Then
fileName = sfdSave.FileName
SaveItems()
End If
'If filename exists, append item to file
Else
AppendToFile()
End If
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
'Clears all content currently within text boxes
txtFirstName.Clear()
txtMiddleName.Clear()
txtLastName.Clear()
txtEmployeeNumber.Clear()
ComboBoxEmpDepartment.ResetText()
txtTelephone.Clear()
txtExtension.Clear()
txtEmailAddress.Clear()
End Sub
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
'Closes Program
frmUserSelection.Show()
Me.Visible = False
End Sub
Private Sub SaveFileDialog1_FileOk(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles sfdSave.FileOk
End Sub
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
'Picture Obtained From:
'"User Add Icon-Shine Set: Add New User, Add User." Free Icons PNG. Accessed 14 October 2018. https://www.freeiconspng.com/img/2487
End Sub
End Class