Merge pull request #1844 from davesisson/master

Add proper error handling semantics to FileStream.
This commit is contained in:
Terence Parr 2017-04-28 15:23:53 -07:00 committed by GitHub
commit b404abb11e
1 changed files with 11 additions and 5 deletions

View File

@ -19,13 +19,19 @@ type FileStream struct {
filename string filename string
} }
func NewFileStream(fileName string) *FileStream { func NewFileStream(fileName string) (*FileStream, error) {
buf := bytes.NewBuffer(nil) buf := bytes.NewBuffer(nil)
f, _ := os.Open(fileName) // Error handling elided for brevity. f, err := os.Open(fileName)
io.Copy(buf, f) // Error handling elided for brevity. if err != nil {
f.Close() return nil, err
}
defer f.Close()
err = io.Copy(buf, f)
if err != nil {
return nil, er
}
fs := new(FileStream) fs := new(FileStream)
@ -34,7 +40,7 @@ func NewFileStream(fileName string) *FileStream {
fs.InputStream = NewInputStream(s) fs.InputStream = NewInputStream(s)
return fs return fs, nil
} }