Try-catch blocks should be used for operations that throw checked exceptions: I/O operations (FileNotFoundException, IOException), database operations (SQLException), and networking (SocketException, UnknownHostException). All these scenarios require proper exception handling for robust code.