You can use the fault.name variable to check the error (http://apigee.com/docs/api-services/content/policy-attachment-and-enforcement#policy-based-fault-handling)
For example:
<TargetEndpoint name="default">
<FaultRules>
<FaultRule name="bad_network">
<Condition>(fault.name = "ServiceUnavailable")</Condition>
...
The way I got to 'ServiceUnavailable' as the fault name, was by first having the FaultRule policy with no conditions, and then trying a few 'bad target' scenarios - right address/wrong port and wrong address/name both generate the same fault name and can be caught using the above snippet.
To see the error name, you just need to add in an AssignMessage policy a block to read the fault.name variable and in the trace it'll be displayed in the 'Variables Got' session, or assign it to the payload of your response.
Once you have captured all the faults you want to handle, you can go back and modify the proxy faultrules session.
One last note, the FaultRule session above must be in the target endpoint for it to catch the network error on the target side.
Cheers,
Ricardo