forked from jasder/antlr
Merge pull request #1844 from davesisson/master
Add proper error handling semantics to FileStream.
This commit is contained in:
commit
b404abb11e
|
@ -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
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue