# File lib/rake.rb, line 1897
1897:     def run
1898:       handle_options
1899:       begin
1900:         tasks = collect_tasks
1901:         load_rakefile
1902:         if options.show_tasks
1903:           display_tasks_and_comments
1904:         elsif options.show_prereqs
1905:           display_prerequisites
1906:         else
1907:           tasks.each { |task_name| Rake::Task[task_name].invoke }
1908:         end
1909:       rescue Exception => ex
1910:         puts "rake aborted!"
1911:         puts ex.message
1912:         if options.trace
1913:           puts ex.backtrace.join("\n")
1914:         else
1915:           puts ex.backtrace.find {|str| str =~ /#{@rakefile}/ } || ""
1916:           puts "(See full trace by running task with --trace)"
1917:         end
1918:         exit(1)
1919:       end    
1920:     end