Class: RuboCop::Cop::Style::RescueModifier
- Extended by:
- AutoCorrector
- Includes:
- Alignment, RangeHelp, RescueNode
- Defined in:
- lib/rubocop/cop/style/rescue_modifier.rb
Overview
Checks for uses of ‘rescue` in its modifier form is added for following reasons:
-
The syntax of modifier form ‘rescue` can be misleading because it might lead us to believe that `rescue` handles the given exception but it actually rescue all exceptions to return the given rescue block. In this case, value returned by handle_error or SomeException.
-
Modifier form ‘rescue` would rescue all the exceptions. It would silently skip all exception or errors and handle the error. Example: If `NoMethodError` is raised, modifier form rescue would handle the exception.
Constant Summary collapse
- MSG =
'Avoid using `rescue` in its modifier form.'
Constants inherited from Base
Instance Attribute Summary
Attributes inherited from Base
Class Method Summary collapse
Instance Method Summary collapse
Methods included from AutoCorrector
Methods included from RescueNode
Methods inherited from Base
#active_support_extensions_enabled?, #add_global_offense, #add_offense, #always_autocorrect?, badge, #begin_investigation, #callbacks_needed, callbacks_needed, #config_to_allow_offenses, #config_to_allow_offenses=, #contextual_autocorrect?, #cop_config, cop_name, #cop_name, department, documentation_url, exclude_from_registry, #excluded_file?, #external_dependency_checksum, inherited, #initialize, #inspect, joining_forces, lint?, match?, #message, #offenses, #on_investigation_end, #on_new_investigation, #on_other_file, #parse, #parser_engine, #ready, #relevant_file?, requires_gem, #string_literals_frozen_by_default?, support_autocorrect?, support_multiple_source?, #target_rails_version, #target_ruby_version
Methods included from ExcludeLimit
Methods included from AutocorrectLogic
#autocorrect?, #autocorrect_enabled?, #autocorrect_requested?, #autocorrect_with_disable_uncorrectable?, #correctable?, #disable_uncorrectable?, #safe_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
Constructor Details
This class inherits a constructor from RuboCop::Cop::Base
Class Method Details
.autocorrect_incompatible_with ⇒ Object
48 49 50 |
# File 'lib/rubocop/cop/style/rescue_modifier.rb', line 48 def self.autocorrect_incompatible_with [Style::MethodCallWithArgsParentheses] end |
Instance Method Details
#on_resbody(node) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/rubocop/cop/style/rescue_modifier.rb', line 52 def on_resbody(node) return unless rescue_modifier?(node) rescue_node = node.parent add_offense(rescue_node) do |corrector| parenthesized = parenthesized?(rescue_node) correct_rescue_block(corrector, rescue_node, parenthesized) ParenthesesCorrector.correct(corrector, rescue_node.parent) if parenthesized end end |