<分区>
我有一个带有抽象员工类的商业程序。该类有一个名为 BaseSalary
的抽象属性,根据员工类型(收银员、主管、经理等)在其派生类中实现。
我想根据职位为给定的薪水范围验证 BaseSalary
属性中的数据。
当工资不符合该职位工作的要求时,我应该抛出什么样的异常?
标签 c# .net vb.net validation
<分区>
我有一个带有抽象员工类的商业程序。该类有一个名为 BaseSalary
的抽象属性,根据员工类型(收银员、主管、经理等)在其派生类中实现。
我想根据职位为给定的薪水范围验证 BaseSalary
属性中的数据。
当工资不符合该职位工作的要求时,我应该抛出什么样的异常?
最佳答案
与其抛出异常,然后在别处编写更多代码来捕获和处理它们,不如探索根本不允许超出范围的值:
Public Class Waitress
Inherits Employee
Public Sub New
MyBase.GetsTips = True
' do other stuff including class specific params from wherever
MyBase.MinSalary = minsalary from whereever you store it
' or maybe.....
MyBase.MaxSalary = SalaryClass.GetMax(enumEmp.Waitress)
End Sub
End Class
别处
If newSalary >= myWaitress.MinSalary AndAlso
newSalary <= myWaitress.MaxSalary Then
myWaitress.Salary = newSalary
End IF
在现实世界中,范围通常比简单地按部门划分更为复杂。除了部门之外,可能还有培训要求、薪资等级、任期要求等。在这种情况下,您可能有一个 Salary 类来帮助确定这个女服务员的正确范围(基于培训等),而不仅仅是任何女服务员:
If newSalary >= SalaryClass.GetMin(myWaitress) AndAlso
newSalary <= SalaryClass.GetMax(myWaitress) Then
myWaitress.Salary = newSalary
Else
' tell user that is an invalid amount
End IF
关于c# - 我应该在数据验证期间抛出什么异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24972133/