お前がそう思うんならそうなんだろう、お前ん中ではな

(プログラム的な意味での)ある関数fがあったとして、fは内部に何事もなく処理できた場合と、そうでない、例えば引数が間違っているとか、そういう場合の処理があったとして、エラーだからどうしよう、例外でもポイしておきましょう。

function f(x) {
    if (x >= 100) {
        throw ArgumentException();
    }
    ...
}

この関数を書いた人は、xが100以上のときはエラーだったんでしょうけど、

function g(x) {
    try {
        f(x);
    } catch (ArgumentException e) {
        f(42);
    }
}

fを作った人にとってエラーだと思ったことについて、gでは全然そうじゃない。42で余裕です。というように、ある場所でエラーだと思っても他の場所では全然エラーじゃない、そういう場合は多いわけです。まぁあまりにも適当すぎる例なんだけど、そういうことは(多分)世の中には多いわけでして、かなしいことにエラーを表わす手段は例外とかerror_noとかGetLastErrorとかnullとか色々あるわけで、まぁ何がエラーなのかは文脈で変わるし、「エラー」を直接表現する手段と、その手段によって表現したエラーに対して、プログラムは一体何をすることができるのかとか、そういうのはまぁどうすればいいのか全然見当もつかない。

エラーってなんやねん?エラーの定義がふわふわしてるからいけない。天はなぜ我々にエラーを与えなかったのか。いやなぜエラーは天から与えられたものじゃないのか。いや天が与えなかったからエラーなのか。
どれを信じればいいのだろうか?信じるということは、それを天から与えられたものとして受け入れることになるわけで、そこには安らかな世界が広がるけど、世界は一つじゃないし、無限にあると知れば途方に暮れることになる。
世界が本で、それが図書館に収められているとして、その図書館のある場所というのは世界なんだろうか?ラッセルてんてーは答えをくれないのか?ひぃぃ。私はそんな世界は知らない。ペアノの本に引き込もるるる!
まぁ「知らない」と知覚したその瞬間、既に自分の信じてる世界以外の存在の可能性について知覚している(ことになると思う)わけで、途方に暮れなければならなくなる…それでも引き込もることはできると思うけど。実社会で引き込もり、ネットで引き込もり、今度はプログラムでも引き込もることにする。
宗教だなぁ。信じるものは救われる。信じないものは途方に暮れる。途方に暮れたので、だから救いが来るよう引き込もりたい。でもどこに引き込もればいいんだろう。エラーは一つじゃないし、無限にあると知って既に途方に暮れている。
もしかして一度本から出てしまったら、二度と全身を本に入れることはできないのか?かなしい…本からはみ出た半身は途方に暮れているし、本の中に入った半身は、本を信じきれない…それと、私は本当に本の外の世界を見たのかも分からない…分からない…何も分からない……

で、結局どないやねんということについて、現在の私が思うことを書くと、「エラーとは、期待した結果以外」という宗教に入信してます(したいです)。エラーに対する処理は書きません(というか書けない。まさかそんな事態になるとは思ってないから)。期待どおり以外の動作をする者が悪い。私は全然悪くない。おぉ、私の生き方そのものじゃないか?ちなみに、自分以外は全てエラーじゃなくて、自分が意図しない結果を出したとき、それはバグ。

とかここまで書いたんだけど、適当すぎるし、結局エラーをどうやって扱うの?とかは全く解決してないというか、何も動いてない。もとの場所。
エラーのない世界に生きたいけど、そこには多分何もない…かなしい。