SSブログ

ユーザーに見せるエラーと開発者の見るエラーとは違うよね [プログラミング]

ユーザーに表示するエラーは、開発者から見ると大抵エラーで返ってきてはいない。内部のエラーをそのままユーザーに見せることはあるけど、それは使っているユーザーにエラー報告をさせるものだったりする。だから、開発的なエラーというと確かにそれでいいのかもしれないけど、ユーザーには本来知らせずに事前に直しとけなエラーだったりする。

処理的にはエラーが出ていないけど、アプリの使い方のお作法的には合っていませんよ、というのがエラーの出しどころだとは思う。そうじゃないとユーザー向けのアプリじゃない気がしている。開発者がそのまま使うとかなら内部エラーがダダ漏れでもいいとは思うけど、そうじゃないものの方が多いよね。



プログラマーの仕事の初期に、ソースをコンパイルしたDLLを食わせて機器のシミュレートをさせるものがあった。元々ハードに食わせて動かすものだったけど、それを自分たちで作ったソフトであるシミュレータに食わせて疑似的な動作をさせるというものであった。

あるDLLを食わせるとアプリが落ちるという話があったので調べてみると、DLLの中で0除算をしていることがわかり、こんなの俺のせいじゃねーよと思ったんだけど、アプリ側で対処することにした。というか、ただ単に例外をcatchしてアプリを落とさないようにするだけだったんだけど、アプリごと落ちるのって印象が悪いからねぇ。

Windowsの変数って意図的に初期化しないとゼロクリアされるので、0除算が起こってしまっていたんですよね。Linuxとかだと不定値が入ってきてそれはそれで問題なのだけれど。実際のシミュレーターではない本機では大丈夫なのかといわれると、それは実機では使わない疑似的なコードだったのでそういうことが起こったのかもしれない。そもそもDLLのコードを作った人のバグだったわけだけど、外部の対策をせずに自分のアプリを落とさせるのは厳しい感じではありますしね。

その時に表示させたエラーは、「DLLで0除算しています。」とガッツリ書いてしまった。本当は0除算以外の例外が起こっている可能性はあったのだけれども、それ以外が起こらないような気がしていたのでそう書いてしまった。本来なら「DLLに問題があります」とか書くんだろうけど、DLLを書いている人に注意をする意味でもピンポイントに書いた覚えがあります。結局、エラー表示っていうのは誰に伝えようかという事なんだろうなぁと思ったりします。


ただエラー表示を出せるだけでもまだいいケースなのかもしれない。先の話ではないけど、プログラムが落ちて終了なんてことはそこそこあることではあるわけだし。なんか知らないけど操作できなくなるのも同じことなのかな。いろいろ考えることがあるから、プログラミングは実際に動作させるところ以外も難しい。

コメント(0) 
共通テーマ:パソコン・インターネット

Twitterまとめ投稿 2020/05/20 [Twitter]


コメント(0)