diff --git a/src/building_blocks.jl b/src/building_blocks.jl
index a964a06d1486c3b751989e9e98085c7650cdc9d8..7434ec68686c83b07bdd78815a55da4657ebd627 100644
--- a/src/building_blocks.jl
+++ b/src/building_blocks.jl
@@ -127,17 +127,17 @@ for variable_func in keys(variables)
             alt_var, forward, backward, _ = alternative_variables[Variables.$variable_func]
             try
                 value = alt_var(bb)
+                if value isa Number
+                    return backward(value)
+                elseif value isa AbstractArray{<:Number}
+                    return backward.(value)
+                end
             catch e
                 if e isa VariableNotAvailable
                     throw(VariableNotAvailable(typeof(bb), Variables.$variable_func))
                 end
                 rethrow()
             end
-            if value isa Number
-                return backward(value)
-            elseif value isa AbstractArray{<:Number}
-                return backward.(value)
-            end
             throw(VariableNotAvailable(typeof(bb), Variables.$variable_func, alt_var))
         end
         throw(VariableNotAvailable(typeof(bb), Variables.$variable_func))