Why Sqlcode 100 does not come with exception
I will explain the sequence of actions.


The select returns no rows and throws an exception NO_DATA_FOUND
The WHEN OTHERS exception handler handles the exception.
the Raise_Application_Error should raise the new exception.


Problems:


The use of the sqlcode variable is not wise, you should remove it as it is not within an error handler.
The EXIT statements after the RAISE_APPLICATION_ERROR's are dead code.
I cannot quite see how you could see the ora-00100 error with this code and still be correct in what you wrote.