Sha256: f6b8af9cd588ec6deb58746401a8a8ca30a785a8ac951a4c326ebb33c3d0b811

Contents?: true

Size: 1.01 KB

Versions: 8

Compression:

Stored size: 1.01 KB

Contents

# encoding: utf-8
require 'rails_best_practices/reviews/review'

module RailsBestPractices
  module Reviews
    # Review all code to make sure we don't rescue Exception
    # This is a common mistake by Java or C# devs in ruby.
    #
    # See the best practice details here http://rails-bestpractices.com/posts/702-don-t-rescue-exception-rescue-standarderror
    #
    # Implementation:
    #
    # Review process:
    #   check all rescue node to see if its type is Exception
    class NotRescueExceptionReview < Review
      interesting_nodes :rescue
      interesting_files ALL_FILES
      url "http://rails-bestpractices.com/posts/702-don-t-rescue-exception-rescue-standarderror"

      # check rescue node to see if its type is Exception
      add_callback :start_rescue do |rescue_node|
        if rescue_node.exception_classes.any? { |rescue_class| "Exception" == rescue_class.to_s }
          add_error "not rescue Exception", rescue_node.file, rescue_node.exception_classes.first.line
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
rails_best_practices-1.13.8 lib/rails_best_practices/reviews/not_rescue_exception_review.rb
rails_best_practices-1.13.5 lib/rails_best_practices/reviews/not_rescue_exception_review.rb
rails_best_practices-1.13.4 lib/rails_best_practices/reviews/not_rescue_exception_review.rb
rails_best_practices-1.13.3 lib/rails_best_practices/reviews/not_rescue_exception_review.rb
rails_best_practices-1.13.2 lib/rails_best_practices/reviews/not_rescue_exception_review.rb
rails_best_practices-1.13.1 lib/rails_best_practices/reviews/not_rescue_exception_review.rb
rails_best_practices-1.13.0 lib/rails_best_practices/reviews/not_rescue_exception_review.rb
rails_best_practices-1.12.0 lib/rails_best_practices/reviews/not_rescue_exception_review.rb