title: In PL/SQL (Oracle), can exceptions propagate across function/procedure calls?
body: <p>as it happens in enclosed blocks<br>
  If an anonymous block calls a function that raises exceptions, those are neither shown on console nor trapped in enclosing blocks...<br>
  What's more, after being caught by handler in the function, lines after function call in the anonymous block are executed normally!  </p>
  
  <p>The called procedure is:  </p>
  
  <pre><code>CREATE OR REPLACE PROCEDURE qt(pno number, qty OUT number)
  IS
  BEGIN
  select sum(qty_on_hand) into qty from products where productno=pno;
  END;
  </code></pre>
  
  <p>The calling block is:  </p>
  
  <pre><code>DECLARE
  qty number;
  BEGIN
  qt(&amp;pno, qty);
  dbms_output.put_line('qty is: '||qty);
  END;
  </code></pre>
  
  <p>In case of invalid product number, no error is shown; why?</p>