ユーザーに見せるエラーと開発者の見るエラーとは違うよね [プログラミング]
ユーザーに表示するエラーは、開発者から見ると大抵エラーで返ってきてはいない。内部のエラーをそのままユーザーに見せることはあるけど、それは使っているユーザーにエラー報告をさせるものだったりする。だから、開発的なエラーというと確かにそれでいいのかもしれないけど、ユーザーには本来知らせずに事前に直しとけなエラーだったりする。
処理的にはエラーが出ていないけど、アプリの使い方のお作法的には合っていませんよ、というのがエラーの出しどころだとは思う。そうじゃないとユーザー向けのアプリじゃない気がしている。開発者がそのまま使うとかなら内部エラーがダダ漏れでもいいとは思うけど、そうじゃないものの方が多いよね。
プログラマーの仕事の初期に、ソースをコンパイルしたDLLを食わせて機器のシミュレートをさせるものがあった。元々ハードに食わせて動かすものだったけど、それを自分たちで作ったソフトであるシミュレータに食わせて疑似的な動作をさせるというものであった。
あるDLLを食わせるとアプリが落ちるという話があったので調べてみると、DLLの中で0除算をしていることがわかり、こんなの俺のせいじゃねーよと思ったんだけど、アプリ側で対処することにした。というか、ただ単に例外をcatchしてアプリを落とさないようにするだけだったんだけど、アプリごと落ちるのって印象が悪いからねぇ。
Windowsの変数って意図的に初期化しないとゼロクリアされるので、0除算が起こってしまっていたんですよね。Linuxとかだと不定値が入ってきてそれはそれで問題なのだけれど。実際のシミュレーターではない本機では大丈夫なのかといわれると、それは実機では使わない疑似的なコードだったのでそういうことが起こったのかもしれない。そもそもDLLのコードを作った人のバグだったわけだけど、外部の対策をせずに自分のアプリを落とさせるのは厳しい感じではありますしね。
その時に表示させたエラーは、「DLLで0除算しています。」とガッツリ書いてしまった。本当は0除算以外の例外が起こっている可能性はあったのだけれども、それ以外が起こらないような気がしていたのでそう書いてしまった。本来なら「DLLに問題があります」とか書くんだろうけど、DLLを書いている人に注意をする意味でもピンポイントに書いた覚えがあります。結局、エラー表示っていうのは誰に伝えようかという事なんだろうなぁと思ったりします。
ただエラー表示を出せるだけでもまだいいケースなのかもしれない。先の話ではないけど、プログラムが落ちて終了なんてことはそこそこあることではあるわけだし。なんか知らないけど操作できなくなるのも同じことなのかな。いろいろ考えることがあるから、プログラミングは実際に動作させるところ以外も難しい。
処理的にはエラーが出ていないけど、アプリの使い方のお作法的には合っていませんよ、というのがエラーの出しどころだとは思う。そうじゃないとユーザー向けのアプリじゃない気がしている。開発者がそのまま使うとかなら内部エラーがダダ漏れでもいいとは思うけど、そうじゃないものの方が多いよね。
プログラマーの仕事の初期に、ソースをコンパイルしたDLLを食わせて機器のシミュレートをさせるものがあった。元々ハードに食わせて動かすものだったけど、それを自分たちで作ったソフトであるシミュレータに食わせて疑似的な動作をさせるというものであった。
あるDLLを食わせるとアプリが落ちるという話があったので調べてみると、DLLの中で0除算をしていることがわかり、こんなの俺のせいじゃねーよと思ったんだけど、アプリ側で対処することにした。というか、ただ単に例外をcatchしてアプリを落とさないようにするだけだったんだけど、アプリごと落ちるのって印象が悪いからねぇ。
Windowsの変数って意図的に初期化しないとゼロクリアされるので、0除算が起こってしまっていたんですよね。Linuxとかだと不定値が入ってきてそれはそれで問題なのだけれど。実際のシミュレーターではない本機では大丈夫なのかといわれると、それは実機では使わない疑似的なコードだったのでそういうことが起こったのかもしれない。そもそもDLLのコードを作った人のバグだったわけだけど、外部の対策をせずに自分のアプリを落とさせるのは厳しい感じではありますしね。
その時に表示させたエラーは、「DLLで0除算しています。」とガッツリ書いてしまった。本当は0除算以外の例外が起こっている可能性はあったのだけれども、それ以外が起こらないような気がしていたのでそう書いてしまった。本来なら「DLLに問題があります」とか書くんだろうけど、DLLを書いている人に注意をする意味でもピンポイントに書いた覚えがあります。結局、エラー表示っていうのは誰に伝えようかという事なんだろうなぁと思ったりします。
ただエラー表示を出せるだけでもまだいいケースなのかもしれない。先の話ではないけど、プログラムが落ちて終了なんてことはそこそこあることではあるわけだし。なんか知らないけど操作できなくなるのも同じことなのかな。いろいろ考えることがあるから、プログラミングは実際に動作させるところ以外も難しい。
Twitterまとめ投稿 2020/05/20 [Twitter]
carbonhydrat『無線LANの調子が悪かったので買い替えた。』とうふめんたらー絶賛頻尿中|https://t.co/J6mhyeCbGq05/19 09:29 carbonhydratRT @jiro6663: じつは今年度は、徹底的な自己責任論で切り捨てられたまま中年になった就職氷河期世代に対して政府が本腰を入れて各種雇用支援メニューを準備、満を持して「再チャレンジ」の年になる予定だったのにコロナですべて吹き飛んだという話を読んでる。とことん救われない人々…05/19 09:32 carbonhydratRT @ChiaChun0621: 本当、関智一さんって七色の声だなぁ〜 引用元:https://t.co/PoJT4u0o2l https://t.co/AmxoZmGnfb05/19 10:13 carbonhydratRT @TV3517SHIRAYUKI: @pontasan387957 これが正しい順番か(-ω-;) ソビエトのお嬢様 ↓ セーラー戦士 ↓ ソビエト空挺軍 ↓ 犯罪組織のボス 空挺軍まではまだ救いがあったんだろうな(-ω-;) https://t.co/cHHXBxsj…05/19 10:16
2020-05-20 05:01
コメント(0)