EOS exception now contains the error code.

This commit is contained in:
Dominik Picheta 2014-03-11 23:06:22 +00:00
commit 15919b7c98
2 changed files with 7 additions and 5 deletions

View file

@ -260,11 +260,12 @@ proc osError*(errorCode: TOSErrorCode) =
## ##
## If the error code is ``0`` or an error message could not be retrieved, ## If the error code is ``0`` or an error message could not be retrieved,
## the message ``unknown OS error`` will be used. ## the message ``unknown OS error`` will be used.
let msg = osErrorMsg(errorCode) var e: ref EOS; new(e)
if msg == "": e.errorCode = errorCode.int32
raise newException(EOS, "unknown OS error") e.msg = osErrorMsg(errorCode)
else: if e.msg == "":
raise newException(EOS, msg) e.msg = "unknown OS error"
raise e
{.push stackTrace:off.} {.push stackTrace:off.}
proc osLastError*(): TOSErrorCode = proc osLastError*(): TOSErrorCode =

View file

@ -260,6 +260,7 @@ type
## system raises. ## system raises.
EIO* = object of ESystem ## raised if an IO error occured. EIO* = object of ESystem ## raised if an IO error occured.
EOS* = object of ESystem ## raised if an operating system service failed. EOS* = object of ESystem ## raised if an operating system service failed.
errorCode*: int32 ## OS-defined error code describing this error.
EInvalidLibrary* = object of EOS ## raised if a dynamic library EInvalidLibrary* = object of EOS ## raised if a dynamic library
## could not be loaded. ## could not be loaded.
EResourceExhausted* = object of ESystem ## raised if a resource request EResourceExhausted* = object of ESystem ## raised if a resource request