Spring 例外ハンドリング
はじめに Spring初心者です。 1.5ヶ月ほどで、Webアプリケーションを作りました。 例外処理について調べたので、まとめます。 HandlerExceptionResolver これを使って例外処理をする。 以下の順番で処理されていく ① @ExceptionHandlerを付与したメソッド ② @ResponseStatusを付与したメソッド ③...
View Article例外勉強メモ
例外の書き方を1時間で勉強してまとめたメモ 一般 どういった基準で例外を書くべきなんだろう? 例外を乱用しない 例外は呼び出す側がINPUTの条件を満たしているが、呼び出された側でOUTPUTの条件を満たせなくなったときに投げる by 業務でWebサービス開発をする際に気をつけたいこと(新卒向け) コードの可読性が上がる 正常系と異常系の処理が混じっている ためコードが読みにくい。 by...
View ArticleScalaのscala.util.TryでJavaのtry-catch-finallyを表現する
Javaのtry-catch-finallyは致命的なエラー(FatalError)は捕捉しませんが、 Scalaのtry-catch-finallyは致命的なエラーも捕捉してしまいます。 致命的な例外として有名なのはOutOfMemoryErrorなどがあり、このような致命的な例外はプログラム中で捕捉すべきではありません。 scala> try { | throw new...
View Article例外処理について
例外処理について 今までしっくりきていなかったことで、考えがまとまったのでメモります。 プログラミングのみの話でもないので、そちらも書きます。 例外という言葉の意味 そもそも例外という言葉の意味がわかっていませんでした。 例外とは簡単にはエラーなんですが、なぜエラー=例外なのかというと、 例外が異常に含まれるからです。 端的には上記ですが、詳しくすると、...
View ArticleRubyで学ぶ例外処理
自分の手である程度動くコードが書けるようになってきた際、次のステップとし待ち構えているのが例外処理ではないでしょうか。 実際、業務などでプログラムを書く際には、プログラムやアプリケーションがクラッシュしないように適切に例外処理/エラーハンドリングをすべきシーンが多々あります。 今回はRubyを例にして例外処理についてまとめました。 例外処理とは wiki大先生によると例外処理とは、...
View ArticleOperational Notifications Exception Design / ONED for DevOps
> to English Pages https://kyowg.blogspot.com/2018/05/operational-notifications-exception.html 1. 要約 このポストでは、開発速度、品質、機会損失などの改善サイクルの向上を目的とした DevOps のサービス運営視点に基づく Web...
View Article「例外」がないからGo言語はイケてないとかって言ってるヤツが本当にイケてない件
この記事は、Go3 Advent Calendar 2018 の8日目の記事です。 7日目は @codehex さんによる「Go でアプリケーションとクライアントのミドルウェアを作成する方法知ってますか?」でした。 本日はネタ全開でお送りいたします。 Disclaimer(免責事項) はじめに言い訳というか、これを書いた経緯というか。...
View Article段階的に理解する Java 例外処理
はじめに 例外処理の問題は Java コードレビューでの頻出指摘事項である。この記事で述べる通り、Java の例外処理において守るべき基本的なルールはそれほど複雑ではない。だが、たとえ職務経歴上は経験年数の長い Java プログラマであっても、適切な例外処理を実装できないケースは残念ながらよく観測される。さらに経験年数が短い Java プログラマにおいては言わずもがなである。...
View ArticleC#で例外処理実装時に意識するべき3つのポイント
C#での例外処理について学んだのでその中でも特に意識しておくべきことを挙げていきます。 1.リソースの使用時にはusingを使う プログラム中でファイルやデータベースなど、他のアプリケーションと共有するようなリソースを使用する際にはそのリソースを開放する必要があります。...
View Articlerubyでraiseのバックトレースを空にする(ベンチマーク付き)
概要 処理をバスッと切ってユーザーにエラーを表示させるようなシチュエーション、例えばAjaxのレスポンスなどで、ロールバックのことなんかも考えるとraiseを使うと便利だと思ったのですが、バックトレースが必要ないので、生成しないようにできたら多少でも軽くなるかなと思って調べてみた。 コード raise StandardError, 'そんなことしたらあかん!', []...
View Article「例外を投げない」という選択肢をとる言語
新しめの言語では例外を投げることを推奨しない言語が出てきているように思えるが、そうした言語が例外をどう考え、例外の代わりにどのようなアプローチを奨励しているかを調べてみた。...
View Articleyet another 「例外を投げない」言語
「例外を投げない」という選択肢をとる言語 という記事がトレンドに乗ってたので・・ Rustなのか?Rustなのかい? って思って開いてみた所・・・ ok, err := foo() ってやった場合と val, ok := bar["key"] みたいにやった時に何がokなんだかよくわかんなくなる方の言語でした。 いや、使い方が悪いんでしょうけど。 最初、if val, ok :=...
View Article🔵 TypeScript - Goみたいに「例外を投げない」ためのライブラリを作った
先日この記事を読みました。 「例外を投げない」という選択肢をとる言語 Go や Scala では、例外を JavaScript のように throw して catch することが推奨されず、多値返却や Either でエラーも戻り値として返すアプローチがとられるという内容です。 TypeScript でも同じようなことがしたかったので fp-ts を使って作ってみました!!!🎉🎉 ⛵ TrySafe...
View ArticleRubyで例外を捕捉する
例外を捕捉して処理を続行する場合 もっとも単純な構文 ruby.rb begin # 例外が起きうる処理 rescue # 例外が発生した場合の処理 end 例外オブジェクトから情報を取得する...
View Articlelaravel phpunit お手軽例外処理のテスト
◆方法 ・try catch ・exceptedException ・exceptedExceptionアノテーション(非推奨) ◆try catch class ExampleTest extends TestCase { private $errorMessageOverFlow = 'overFlowException'; private $errorCodeOverFlow = 999;...
View Article[Java] コンパイルエラーと実行時エラーの分類メモ
コンパイルエラーになるケースと実行時エラーになるケースの分類。 コンパイルエラーになるケース ラムダ式の型の不一致 BiFunction<Integer, Double, Integer> function = (x, y) -> x + y; function.apply(1, 2.5); (int)(x + y) もしくは、 BiFunction<Integer,...
View Articleシェルでtry~catchをやろうとしたら、それっぽい書き方になった
模擬的にエラーを起こすスクリプトを用意する error.sh #!/bin/bash exit 1 例外処理を呼びたいスクリプト like_try_catch.sh set -e function if_trap { # エラーになった時の処理 echo "TRAP ERROR" ! } trap if_trap ERR { # メインの処理 /bin/bash error.sh echo...
View Article契約による設計、例外、表明の関係について個人的なまとめ
はじめに 契約による設計を知ると、よりよいプログラミングができそうだったので個人的にまとめました。 契約による設計とは 契約による設計(けいやくによるせっけい、Design By Contract)とは、プログラムコードの中にプログラムが満たすべき仕様についての記述を盛り込む事で設計の安全性を高める技法。 契約プログラミングより...
View ArticleRailsのトランザクションと例外処理
Railsのトランザクションと例外処理がよく分からなかったので、調べました。 app/controllers/user_controller.rb def create ActiveRecode::Base.transaction do # createではなく、create!にすると保存できなかったときに例外が発生します。 @user = User.create!(user_params)...
View Article【PHP8.0】PHP8で警告のエラーレベルが軒並み厳しくなる
多くの警告について、PHP8.0でエラーレベルが変更されます。 これはReclassifying engine warningsというRFCで受理されたものです。 提案者はいつものNikita。 影響の大きい未定義変数アクセスについては個別に紹介しましたが、ここではそこで紹介しなかった細かい警告について見ていきます。...
View Article