Better error handling.
[hs-java.git] / TestGen.hs
index 31e71c0676ae0255d345a46d8ac1d6a502dd1dd5..e0af50b5e05dd7563c4efef2620bb3d74d8c7a06 100644 (file)
@@ -1,24 +1,26 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE OverloadedStrings, FlexibleContexts #-}
 
+import Control.Monad.Exception
 import qualified Data.ByteString.Lazy as B
 
 import JVM.ClassFile
 import JVM.Converter
 import JVM.Assembler
 import JVM.Builder
+import JVM.Exceptions
 import Java.ClassPath
 
 import qualified Java.Lang
 import qualified Java.IO
 
-test :: GenerateIO ()
+test :: (Throws ENotFound e, Throws ENotLoaded e, Throws UnexpectedEndMethod e) => GenerateIO e ()
 test = do
   withClassPath $ do
       -- Add current directory (with Hello.class) to ClassPath
       addDirectory "."
 
-  -- Load method signature: Hello.hello()
-  helloJava <- getClassMethod "./Hello" "hello"
+  -- Load method signature: Hello.hello() from Hello.class
+  helloJava <- getClassMethod "Hello" "hello"
 
   -- Initializer method. Just calls java.lang.Object.<init>
   newMethod [ACC_PUBLIC] "<init>" [] ReturnsVoid $ do