リファクタリング
4855 ワード
Yagniの例外クラスを作成する私たちの環境を汚染する.それらを取り除きましょう.
問題点 Emptyクラス の汚染された名前空間
関連する匂い
ステップ 空の例外クラスへの参照はありません. スロー文を一般的なものに置き換えます.
サンプルコード
以前
アフター
種類
自動化
例外クラスが参照を持たない場合は、例外クラスを使用して安全な削除と置換を実行できます.
なぜコードがより良いですか?私たちは空のクラスを使いません. 私たちはコード を縮小します
制限
APIモジュールのドキュメントとして空の例外クラスを宣言する必要がある場合、クライアントはそれをキャッチする必要があります.
これはgold platingとYAGNIの例です.
タグ
クリーンアップ
関連リファクタリング安全な削除
クレジット
danielkirschからのPixabayによるイメージ
この記事はリファクタリングシリーズの一部です.
TL;DR: Remove unnecessary and not references empty exception classes.
問題点
関連する匂い
Code Smell 26 - Exceptions Polluting
Maxi Contieri ・ Nov 16 '20 ・ 2 min read
#oop
#exceptions
#tutorial
#programming
ステップ
サンプルコード
以前
class RangeNotSatisfiedException < StandardError
end
begin
raise RangeNotSatisfiedException.new "Range must be betweet 0 and 10"
rescue RangeNotSatisfiedException => e
puts e.message
puts e.exception_type
end
アフター
# 1. Check there are no references to the empty exception class.
# 2. Replace the throw sentence with a generic one.
begin
raise StandardError.new "Range must be betweet 0 and 10"
rescue StandardError => exception
puts exception.message
puts exception.exception_type
end
種類
自動化
例外クラスが参照を持たない場合は、例外クラスを使用して安全な削除と置換を実行できます.
なぜコードがより良いですか?
制限
APIモジュールのドキュメントとして空の例外クラスを宣言する必要がある場合、クライアントはそれをキャッチする必要があります.
これはgold platingとYAGNIの例です.
タグ
クリーンアップ
関連リファクタリング
クレジット
danielkirschからのPixabayによるイメージ
この記事はリファクタリングシリーズの一部です.
Reference
この問題について(リファクタリング), 我々は、より多くの情報をここで見つけました https://dev.to/mcsee/refactoring-004-remove-unhandled-exceptions-21kcテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol