Para este caso particular, y dado que aun estás en desarrollo, ¿por qué no le añades una CONSTRAINT a la tabla para que STOCK_ACTUAL > 0?
 
  Con esto te ahorras la función PL/SQL y tu aplicación rendirá mucho más por: 
  - Te ahorras la llamada al nuevo PL/SQL.
  - Si violas la constraint (vendes más de lo que tienes) puedes gestionar el error en tu EXCEPTION.
  - Evitas una lectura de la tabla, con lo que eso conlleva (cálculo de plan de ejecución nuevo, parsing del SQL, lecturas de bufferes o peor aun: de disco).
  - Pasas la lógica del negocio directamente a la BBDD. 
  Pero esto no es más que un punto de vista. 
 
 
  Un saludo.