-
Notifications
You must be signed in to change notification settings - Fork 0
swift_errors
kobayashiharuto edited this page Jul 31, 2021
·
5 revisions
どちらも同じエラーに見えるかもしれません。
しかし...コンパイルエラーは愛すべき神、ランタイムエラーは忌むべき悪魔。
まったくもって別物なのです。
ランタイム=実行時
つまり、アプリが起動してユーザーが使っているときですね。
ここで起きてしまうエラーですから、ユーザーに迷惑をかけてしまいます。
絶対に避けなくてはなりません...!
コンパイル=コードをアプリに加工する段階
決まった構文に従ってないと出るエラーです。
Xcode で ▷ ボタンを押して、アプリを作ってまーすってときにでるエラーの事ですね。
あと、Xcode ではコンパイル時でなくても随時構文を解析していますので、コーディング中に赤や黄色でエラーが出てくると思います。
嫌いですか?いやいや、よく考えてみてください。
たしかに、早くアプリ動かしてみたいのにコンパイルエラーで動かないのは残念な気持ちになります。
でも、決まった構文に従っていないコードは確実にバグります。そのとき、コンパイルエラーが起きないとどうなるか?
バグを抱えたままユーザーのもとにアプリが届くわけですね...恐ろしい。
つまりコンパイルエラーは、避けるべきランタイムエラーになる場所を教えてくれる神だったのです!
0 になってはいけない変数に 0 を入れたらコンパイルエラーを起きるようにしたい。
そんなコードを書いて、ランタイムエラーを回避しようというやり方を教えるつもりです。
このとき、この二つに区別がついていないと、「エラーが無駄に増えるだけじゃん」となる危険があるからです。
さあ、コンパイルエラーを増やしていきましょう!
- ランタイムエラーはユーザーに迷惑をかけるので絶対に避けたい
- 対して、コンパイルエラーはランタイムエラーが起きる箇所を教えてくれる神
- コンパイルエラーを増やして安心安全コーディング!