Hasan,
If an exception is thrown from the code, it really will show an unsuccessful status. If you want to explicitly “fail” your run with an instance of the timer job, you can and should throw an exception. This can be done in conjunction with setting the flag SPJobDefinition.Retryvalue to TRUE if you feel that another run can bypass your “problem state”.
, (, ULS - ), , , . , - ( / ).
, !