use IOException rather than FileNotFoundException - covers more error types.
Add tests for badly formed and missing track files.