Fix error behavior.

This commit is contained in:
James Roseborough
2010-04-02 14:48:01 +00:00
parent 946503fc20
commit d903a85578
2 changed files with 14 additions and 6 deletions

View File

@@ -270,7 +270,7 @@ public class IoLib extends OneArgFunction {
f = checkfile(env); f = checkfile(env);
return freadline(f); return freadline(f);
} }
} catch ( Exception ioe ) { } catch ( IOException ioe ) {
return errorresult(ioe); return errorresult(ioe);
} }
return NONE; return NONE;
@@ -319,10 +319,14 @@ public class IoLib extends OneArgFunction {
return varargsOf(NIL, valueOf(errortext)); return varargsOf(NIL, valueOf(errortext));
} }
private Varargs lines(final File f) throws Exception { private Varargs lines(final File f) {
IoLib iter = (IoLib) getClass().newInstance(); try {
iter.setfenv(f); IoLib iter = (IoLib) getClass().newInstance();
return iter.bindv("lnext",LINES_ITER); iter.setfenv(f);
return iter.bindv("lnext",LINES_ITER);
} catch ( Exception e ) {
return error("lines: "+e);
}
} }
private static Varargs iowrite(File f, Varargs args) throws IOException { private static Varargs iowrite(File f, Varargs args) throws IOException {

View File

@@ -111,7 +111,11 @@ print( "a:read", ( a:read(7) ) )
print( "b:read", ( b:read(7) ) ) print( "b:read", ( b:read(7) ) )
--]] --]]
local pcall = function(...) return ( pcall(...) )end local pcall = function(...)
local s,e = pcall(...)
if s then return s end
return s,e:match("closed")
end
print( 'a:close', pcall( a.close, a ) ) print( 'a:close', pcall( a.close, a ) )
print( 'a:write', pcall( a.write, a, 'eee') ) print( 'a:write', pcall( a.write, a, 'eee') )