いいえ、C#では要求していることはできません。
代わりに、この問題の適切な解決策は、そもそも例外をスローしない、より優れた解析方法を使用することです。入力値がnullになる可能性がある場合は、null値を受け入れることができる解析方法を使用してください。
おそらく最初に行う必要があるのは、int / boolフィールドにnull許容型を使用して、null値をサポートできるようにすることです。次に、int/boolsを解析するための独自のメソッドを作成する必要があります。入力がnullの場合はnullを返し、そうでない場合はint.TryParse
を使用します 、bool.TryParse
(またはas
入力が適切なタイプの場合は、それぞれについてobject
にキャストするだけです。 。
次に、Convert
の代わりに、これらのメソッドを使用します 、そもそも例外をスローすることはありません(例外は例外的なケースであり、予期された制御フローではないため、機能する場合でもここで実行するべきではありません)。