Code Complete で、フロー制御に例外を使用してはならないことを読みました。また、一般的なアドバイスは、例外を使用して「例外的なケース」を処理することであることも知っています。しかし、このアドバイスをどのように適用すればよいかわかりません。コンストラクターで無効なパラメーターをチェックするために例外を使用することは良い考えですか? たとえば、スプレッドシートの行を (操作のために) Record オブジェクトに変換する ExcelInputConverter があります。コンストラクターは、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")