金高真悟の奇天烈(キテレツ)大百科

日々徒然なるままに

株式会社ニコシスの新入社員が毎日のあれやこれやを語ります。

同じ目的でも技術力によってやりかたが千差万別・・・・(´д`ι)

リトライについてあれこれ

こんばんは。
キテレツです。

C#でDBアクセスやディスクアクセスに失敗した場合に、何度かリトライしたい場合の書き方について悩みました~。

知っていれば簡単な事なんでしょうが、Google先生に聞いたらアレコレ沢山選択肢があって、どれがいいのやら。

いや、それよりも、、、

キテレツが理解できていなければマズイ・・・(・∀・i)タラー・・・

のですよ。
デリゲートで汎用的にとか言われても、、

なんのこっちゃ???(´д`ι)

な状況なので、自分がメンテする気持ちで作ります。

回数指定でリトライなコード

こうしました。

// 100回リトライ
for (int i = 0; i < 100; i++) {
    try {
        [A]
        break; // [A]が成功した場合、for を break する
    }
    catch (Exception ex){
        LOG.Error(ex.Message, ex);
        LOG.Errorformat("Try Time: {0}",i);
    }
}

雰囲気はこんな感じ。
リトライ処理させたい部分全てにfor・・・とか書かなきゃいけませんが、まぁ、しかたがないかなと。

※これを汎用的にするためにデリゲートであれこれって発想なんだとは思うんですが、いまいちりかいできず・・・orz

そんなに該当箇所は多くない!!(*´∀`)ノ

ので、これで行きます。

ソフトの書き方とか

気にしなければいけない状況があります。
キテレツが作るソフトですが、後々は別の方がメンテナンスすることになっています。

なので、その方に合わせたコーディングルールで書く必要があります。
クラスの作り方とかコメントの書き方とかアレコレと。

コーディングルールについての鉄則は、

郷に入れば郷に従え!!(*´∀`)ノ

ですね。
たまに、コーディングルールに並々ならぬこだわりを持って戦う人を見たことがありますが・・・・

キテレツは基本的に相手に合わせます。
※あまりにも酷い場合は別ですが(^_^;)

こんな感じで、本日はエラー処理と動作テストと、、、あ、、あとメッセージを飛ばす部分を作ったのでちょっと楽しかったですね♪

出来るようになったことを記憶する方法

を確立しておくことは大切だと、今更ながら感じました。

過去に作ったソフトやらやりかたについて、繰り返しやって覚えたことしか身についていない状態です。

例えば・・・分かる人にはわかりますが

Fanuc ロボドリルの加工プログラム(*´∀`)ノ

とかの経験有るんですが、まったく覚えていません。
たしか、原付きのエンジン部品を削りだす装置の座標データ生成プログラムだったんですが、、まったく覚えていません。
困ったもんです。。・・・(・∀・i)タラー・・・

なので、今回作るソフトは色んな要素を学ぶことができているので、

(*´∀`)ノ 「キテレツさん!!こんなのC#で作れる???」

って言われた時に思い出せる方法を確立して置かなければ。
方法とはいえ、、、、ReadMe.txt的なものしか思い浮かびませんが・・・w