cmusphinx / sphinx4

Pure Java speech recognition library
cmusphinx.sourceforge.net
Other
1.41k stars 586 forks source link

FeatureFileDumper main method could handle exceptions better #18

Open davidmoten opened 9 years ago

davidmoten commented 9 years ago

The main method in FeatureFileDumper catches exceptions and writes to System.err but does not exit the process with a non-zero exit code nor throw a RuntimeException. One of these should occur.

        try {
            ...
        } catch (IOException ioe) {
            System.err.println("I/O Error " + ioe);
        } catch (PropertyException p) {
            System.err.println("Bad configuration " + p);
        }
nshmyrev commented 9 years ago

Thank you for your report. In processing large databases it's ok to have issues. Stopping the work is not a good idea the, it's better to warn and proceed. The filedumper needs rewokr though.

davidmoten commented 9 years ago

I agree that sometimes the caller would want problems to be ignored but it should be up to the caller to do the ignoring (or not ignore). Putting output to stderr only is not a great way of signaling a problem in my opinion.

My reading indicates that the consensus for main method usage is to call System.exit as the main method is expected to be called from scripts rather than Java code. Scripts can ignore errors if they want to. On 13 Jan 2015 08:14, "Nickolay V. Shmyrev" notifications@github.com wrote:

Thank you for your report. In processing large databases it's ok to have issues. Stopping the work is not a good idea the, it's better to warn and proceed. The filedumper needs rewokr though.

— Reply to this email directly or view it on GitHub https://github.com/cmusphinx/sphinx4/issues/18#issuecomment-69647003.