Mar 05, 2021, TIL (Today I Learned)


学習内容


Do-catch不可解なエラー:閉鎖catchが徹底していない

class NumberBaseBall {
    enum GameError: Error {
        case invalidInput
        case unknownError
.
.
.

do {
   pitchedBalls = try checkInvalidInput()
 } catch GameError.unknownError {
   print("입력이 잘못되었습니다.")
   continue outer
            }
do-catch  文法を用いて独自にコードを書くという疑問点がある.  catchゲート後のGameError.未知のErrorエラーモードを書き込むとtryにこのようなエラーが発生し、私は慌てました.Errors thrown from here are not handled because the enclosing catch is not exhaustiveエラー処理が徹底していないと考えられた問題は,catch文の後にもう1文書いた後,残りは未知のエラーパターン処理を行ったが,同様のエラーが発生したことも確認された.
私はすべてのエラーを徹底的に処理したと思います.何か問題がありますか.このパターンを削除すれば問題は解決できるが、なぜこうなるのか理解できず、悩む時間があった.
第1期キャンプは私に分かりやすい答えをくれました.ブログに残したいです.
「Throwを誤った形でゲームに投げ込まず、単純にゲームに投げ込まれた立場では、ゲームミスか他のミスか分からない.ゲームミスをコントロールしても、他のミスが発生する可能性がある」-小隊-
スウィフトの間違いはすべての間違いです
したがって,特定のモードのエラーを処理するほかに,発生する可能性のあるエラーを処理する必要があるようである.
したがって,catch{}構文を含んでこそ,誤った沼から逃れることができる.
「catchの後に作成されたコードブロックにエラーのタイプが指定されていない場合、エラーの内容としてerrorという領域定数をブロック内に暗黙的に入力します.」

問題/厄介な問題


ハーモニーを回すと忘れてしまい、どこからどう直したらいいのか悩んでしまいました.自己客観化が足りないせいか、本を探していても本が読めず、鬱陶しい状況です.

解決策


だから私は自分で前に助けの下で書いたコードを書きました.問題を解く過程で生じた誤りや問題をよく読んで検索し、問題の原因を探すことで、自然と自分の不足点が何なのかを意識します.また、Stackoverflow検索やグーグルやCamperさんたちに質問したとき、私の悩みや疑問の部分が解決されると同時に、もっと頭の中に長く留まると思います.そして思考ガイドを作成する過程で、私が学ぶべきことをもう一度整理しました.思考ガイドがこんなに役に立つとは思わなかった!!これからも思考ガイドを作り続けます!!