diff --git a/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcLoaderException.java b/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcLoaderException.java index 01faeb316..1861e8a9f 100644 --- a/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcLoaderException.java +++ b/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcLoaderException.java @@ -3,8 +3,13 @@ // Licensed under the Apache License, Version 2.0. package org.ethereum.evmc; +/** Exception thrown when the EVMC binding or VM fails to load. */ public class EvmcLoaderException extends Exception { public EvmcLoaderException(String message) { super(message); } + + public EvmcLoaderException(String message, Throwable cause) { + super(message, cause); + } } diff --git a/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcVm.java b/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcVm.java index 1985e56a5..48254c468 100644 --- a/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcVm.java +++ b/bindings/java/java/src/main/java/org/ethereum/evmc/EvmcVm.java @@ -28,8 +28,7 @@ public static EvmcVm create(String filename) throws EvmcLoaderException { System.load(System.getProperty("user.dir") + "/../c/build/lib/libevmc-java.so"); EvmcVm.isEvmcLibraryLoaded = true; } catch (UnsatisfiedLinkError e) { - System.err.println("Native code library failed to load.\n" + e); - System.exit(1); + throw new EvmcLoaderException("EVMC JNI binding library failed to load", e); } } if (Objects.isNull(evmcVm)) {