diff options
| author | Jack Nagel | 2014-12-29 15:23:01 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-12-29 15:23:01 -0500 |
| commit | 820fb42d9b4b787e5ba1729ed7ac8bb189d955de (patch) | |
| tree | 44e13040969ee94c3ab84f4ed54f82755bac2f0a /Library | |
| parent | d48f73b94072715c10fe194ee1f443827c8d1b7f (diff) | |
| download | homebrew-820fb42d9b4b787e5ba1729ed7ac8bb189d955de.tar.bz2 | |
Preserve backtrace from original exception
Diffstat (limited to 'Library')
| -rw-r--r-- | Library/Homebrew/extend/ENV/super.rb | 2 | ||||
| -rw-r--r-- | Library/Homebrew/formulary.rb | 13 |
2 files changed, 7 insertions, 8 deletions
diff --git a/Library/Homebrew/extend/ENV/super.rb b/Library/Homebrew/extend/ENV/super.rb index cb3c12b33..a23fd7d4e 100644 --- a/Library/Homebrew/extend/ENV/super.rb +++ b/Library/Homebrew/extend/ENV/super.rb @@ -119,7 +119,7 @@ module Superenv when "gcc-4.2" begin apple_gcc42 = Formulary.factory('apple-gcc42') - rescue Exception # in --debug, catch bare exceptions too + rescue FormulaUnavailableError end paths << apple_gcc42.opt_bin.to_s if apple_gcc42 when GNU_GCC_REGEXP diff --git a/Library/Homebrew/formulary.rb b/Library/Homebrew/formulary.rb index 65a790639..2af67644f 100644 --- a/Library/Homebrew/formulary.rb +++ b/Library/Homebrew/formulary.rb @@ -55,8 +55,8 @@ class Formulary def klass begin have_klass = Formulary.formula_class_defined? class_name - rescue NameError - raise FormulaUnavailableError.new(name) + rescue NameError => e + raise FormulaUnavailableError, name, e.backtrace end load_file unless have_klass @@ -78,9 +78,8 @@ class Formulary # This is a programming error in an existing formula, and should not # have a "no such formula" message. raise - rescue LoadError, NameError - raise if ARGV.debug? # let's see the REAL error - raise FormulaUnavailableError.new(name) + rescue LoadError, NameError => e + raise FormulaUnavailableError, name, e.backtrace end end end @@ -174,8 +173,8 @@ class Formulary def get_formula(spec) super - rescue FormulaUnavailableError - raise TapFormulaUnavailableError.new(tapped_name) + rescue FormulaUnavailableError => e + raise TapFormulaUnavailableError, tapped_name, e.backtrace end end |
