         return
     else if aOptions.read and !loaded
       if checkValid
-        try
-          @validate()
-        catch e
-          done(e)
-          return @
-      @loadContent(aOptions, done)
+        try @validate() catch err
+      if err
+        done(err)
+      else
+        @loadContent(aOptions, done)
     else
       done(null, @contents)
     @

      throw new TypeError 'loadContentSync not implemented'
    result

  _validate: (aOptions)->
    aOptions.stat?
  validate: (aOptions, raiseError)->
    if isBoolean aOptions
      raiseError = aOptions

    aOptions.buffer = true
    aOptions.overwrite = false
    @loadContent aOptions, (err, result)->
      if result and aOptions.skipSize and isFunction result.slice
        result = result.slice(aOptions.skipSize)
      done(err, result)

