Eu considerei que o parser retornaria nada, pois não há arquivo para analisar.
O retorno de [ ] pode representar um arquivo vazio ou não achado, mas, no contexto do parser, não é a mesma coisa?

Bem, caso eu esteja enganado, além da opção de levantar o NPE para o caller, existe a exceção FileNotFoundException, mas ela representa tanto o null pointer quanto caminho incorreto; seria menos específico.