
【いきなりStudio11】(ちょいコラ)「エラーが起きた場合、1度だけリトライ(再試行)して、ダメなら処理を終了してほしい」って要求で、実際に見た失敗例( ´∀` )
さてと、前回
異常が起きたときに
例外処理=エラーハンドリングの基本
までは触れたので、ここで過去の現場で見た
最強クラスの失敗=勘違い例
を( ´∀` )
タイトルに書いた要求
「エラーが起きた場合、1度だけリトライ(再試行)して、ダメなら処理を終了してほしい」
で、キーワード
エラー☞トライキャッチ
一度だけリトライ☞同じ正常処理をもう一回
だけを切り取って飛びついたのか、前回のエラーを起こすソースでゆーたら



これって前回までの記事で説明した内容を理解してる人とか、勘の良い人なら分かると思うんだけど、それがお客さんの要求を実現してると勝手に思い込んで、
そもそも
フォルダのパス自体が存在しない処理を、
例外処理で再度実行
したところで、
結果はエラーになるだけ
だからね。しかも、前回ゆーたFinallyでやらかしてるから、
キャッチで1回
(今回はやってないけど、キャッチで通るようにしてたら、)ファイナリーでもう1回
計2回、同じ失敗する処理を再実行
しようとしてるからね
気づけよ。オイオイ( ´∀` )
実行結果

例外処理に入らない=当たり前
だからこーなる( ´∀` )

ロボメインの変数デモって出力が3回
1回目のロボメインの変数:RobotMain

2回目のロボメインの変数:ReadConfigのTryでコケて

3回目のロボメインの変数:ReadConfigのCatchesでコケて


って感じになってる( ´∀` )

そらそうだ( ´∀` )
Catchesの処理も異常だから、
そこでコケて
処理が続行されないわ( ´∀` )
こんな組み方
普段、自分でやらないからこそ
検証が必要だねえ( ´∀` )
ちょっと勘違いしていたので、やっぱり
思い込まずに、すぐに検証大事だねえ( ´∀` )
こんな簡単な処理なら、数秒で終わるけど、
正常処理に1度に2時間とかかかる処理で、
繰り返してみ👀💦
☞結局、異常終了しかしない処理が終わるまで、
コケる箇所に依るだろうけど、
場合によっては
2~4時間以上はかかる( ´∀` )
前回までのエラーハンドリングの基本を踏まえた上で読むと、
如何にアホなことをやらかしちゃっているか
が分かるし、
そんなこと実際の開発者でやる奴おらんやろ👀
って思うだろうけど。。。これ、実際に前職までの職場で
よくわかっていない人が本当に何個ものシナリオ(プロセス)でやらかしちゃってるのに遭遇して、
こっちはそれを改修してた方だからね( ´∀` )
そんなの駆け出しでまだプログラミングとか開発デビューくらいの人なのでは?
と思うかもしれないけど、やらかしていた人全員、開発年数でゆーたら
4~7年くらい( ´∀` )
如何に、
こなした数とか年数とか関係ない
ってわかるでしょ( ´∀` )
でも先週、軽くつぶやいたんだけど
コードやソースなんて、
コンパイラは書かれた組まれたとおりにしか実行しないんだから、
<なぜそれをやるのか>
<なぜそれをやらないのか>
↓
業務を軸に理解した上で、
そこに何故、そのアクティビティを組むのか
をしっかり考えて開発することが大事。
ましてや、お客さんなんて
でも書いたとおり、
開発の経験も知識もない
自分たちの要求を開発者に正確に分かるように伝えるなんてできない
んだから、お客さんが出したキーワードに飛びついて、考えずにやると必ずこーゆーことをやらかすし、4~7年とかやってもそれなら、
残念な人でしかない( ´∀` )
まとめ
ホント、何をどうするかとか何を学んで仕事で実践するかなんざ
本人の勝手
なんで別に好きにすればいいとは思うけど、
アクティビティをどこに組むか
ひとつとっても、
これだけ処理結果が違う
ってことが
分かってもらえたなら幸い💃
ま、これまでの記事でしっかり理解してる人ならまずやらかさないと思うけどね~~~
組んだ瞬間に実行して、検証する
さえ実践しとけば
こんな初歩的なミスすぐに気づくし( ´∀` )
それに気づかないで、リリースしちゃってるって時点で
正常処理のクリーンなテストしか出来ない
ろくな検証をしていない
基本のソースを組めない
自分の思い込みでしか物事を考えられない
お客さんの要求を掘り下げて確認出来ない(タイヤのブランコ)
☞自称さん
=ただの素人。アマちゃん( ´∀` )
ってことだけを自分で立証しちゃってるんだけど( ´∀` )
駆け出しの子ならまだわかるけど、
年単位で経験積んでいてコレをやらかすのは
マジでヤバい👀💦
これで
「自分くらいのプロになると、、、」
「もう30代だからそろそろフリーランスになろうかな」
とかゆーてたら、
臍が茶を沸かすでしょ( ´∀` )
色んな開発現場で実際に、何人もいた( ´∀` )
さてと、
ソースを戻して寝ようっと。
今回の要求の正しい対処策はそのうち、
回が進んでから紹介する~~~( ´∀` )
とあるアクティビティを使えば
簡単なんだよね( ´∀` )