title: Catch PL/SQL error PLS-00306 iside PL/SQL method
body: <p>I am running a method (the method name is sent by the end user) using dynamic PL/SQL (ex: <code>EXECUTE IMMEDIATE</code>). </p>
  
  <p>When the method signature does not match the error <code>ORA-06550</code> is raised (PLS-00306 is also mentioned in the stack).</p>
  
  <p>I need to raise a custom message when the method signatures does not match with the required signature.</p>
  
  <p>So I catch <code>ORA-06550</code> inside the PL/SQL exception block and raise an error. Only to notice that <code>ORA-06550</code> is raised for any invalid PL/SQL code (including method signature mismatch)</p>
  
  <p>My Questions</p>
  
  <ol>
  <li>What is the difference between ORA- type messages and PLS- types ones. Can't one catch PLS- type messages (ex: PLS-00306) like they do catch ORA- type ones (ex: <code>ORA-06550</code>). If possible how?</li>
  <li>If not possible how to catch signature mismatches? (apart from running a query against <code>USER_ARGUMENTS</code>)</li>
  </ol>