try catch specifics
===

When I try using a  try/catch I am confused as to what type of errors to try and catch.
In doing research here in stackoverflow I have seen  the comments on not reccommending the use of     

    catch(Exception e)

as it is to generic but where can I find  what type of specific errors I should look for an example would be trying to play an audio file using psuedo code

try{

play audio file

}

catch ( invalid file)

catch ( bad connection)

catch ( file not found)

catch ( invalid file size)

etc

The psuedo errors I list above cover a broad range of functionality from internet connectivity to file specific information.

How do I cover all of these cases

I have an App that shows a message that says the file cannot be played but I would like to catch the specific error and see what is happening each time this message could appear and fix it.

What if I wanted to try and catch an error for something that is unique that I code myself. 

This may be a bad example but if I want to calculate the duration of a planets orbit and generate an error if the duration is smaller than some value. The values used should cause an area to be over 13 months but for some UNKNOWN reason something causes it to be below 13 and I want to find out why so I use a try catch  because something is wrong and I do not know what it is, maybe I need to use a absolute value of a number instead of the number itself or something similar the main point was I do not know what the error was caused by.
