Normally you should see an error message in the QSYSOPR message queue and the job should have created a joblog spooled file.
That depends on what you mean by “failed”. If it means it encountered an error condition and ended abnormally from an *ESCAPE message, it will be very different from a job that ‘handled’ a problem and ended itself normally.
Without being told what failures are involved, we can’t guess how to recognize a failure.
Please describe some example conditions and we can provide more detailed replies.