Well, that has its dangers too.
Consider this toy example:
In[5]:= SetAttributes[f, HoldAll]
f[x_] := Catch@Module[{}, If[x < 0, Throw[$Failed]]; Sqrt[x]]
In[7]:= f[-1]
Out[7]= $Failed
In[8]:= f[2]
Out[8]= Sqrt[2]
In[9]:= f[Throw[boo]; 2]
Out[9]= boo
The same caveat applies to Sow
/Reap
.
This can be fixed by using a (private) tag with Throw
and Catch
(or Sow
and Reap
).