我刚刚在 Code Complete 中读到你不应该使用异常来进行流控制。我也知道常见的建议是使用异常来处理“异常情况”。但我不确定如何应用这个建议。使用异常检查构造函数中的无效参数是个好主意吗?例如,我有一个 ExcelInputConverter,它将电子表格中的行转换为 Record 对象(用于操作)。构造函数将 excel 文件的名称作为输入。我应该使用异常来检查传入的字符串是有效的 excel 文件吗?excel文件存在吗?似乎我应该在这里使用异常,因为如果发生这种情况,该类基本上无法运行。
检查类内或类外的无效数据是个好主意吗?
Public Sub New(filename as string) 'new excel input converter
If Not (Path.GetExtension(fileName) = ".xls" Or Path.GetExtension(fileName) = ".xlsx") Then Throw New Exception("Can't make an Excel input converter from a non-Excel file like " & inputFileName)
If Not (File.Exists(fileName)) Then Throw New Exception("This file does not exist. Can't make an Excel converter")