Why is it that when I CATCH this EXCEPTION it ends my PROC, instead of continuing on to the next statement?

BEGIN
SELECT seats_held
INTO l_fcc_held
FROM flt_cabin_capacity
WHERE cabin = c_cabin.cabin
AND physical_flight_id = l_physical_flight_id
AND actual_depart_date = l_departure_date;
EXCEPTION
WHEN OTHERS THEN
IF SQLCODE = 100 THEN --NO_DATA_FOUND
l_fcc_held := 0;
END IF;
END;