From b7f6183c4b8d13582583947f186f294664b26f02 Mon Sep 17 00:00:00 2001 From: Adam Murdoch Date: Sat, 1 Sep 2012 10:31:15 +1000 Subject: [PATCH] Some tidy-ups to exception handling in Native.get(). --- src/main/java/net/rubygrapefruit/platform/Native.java | 10 ++++++++-- .../net/rubygrapefruit/platform/internal/Platform.java | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/rubygrapefruit/platform/Native.java b/src/main/java/net/rubygrapefruit/platform/Native.java index 2615e40..96f3cba 100755 --- a/src/main/java/net/rubygrapefruit/platform/Native.java +++ b/src/main/java/net/rubygrapefruit/platform/Native.java @@ -70,8 +70,14 @@ public class Native { public static T get(Class type) throws NativeIntegrationUnavailableException, NativeException { init(null); - Platform platform = Platform.current(); - return platform.get(type); + try { + Platform platform = Platform.current(); + return platform.get(type); + } catch (NativeException e) { + throw e; + } catch (Exception e) { + throw new NativeException(String.format("Failed to load native integration %s.", type.getSimpleName()), e); + } } private static void copy(URL source, File dest) { diff --git a/src/main/java/net/rubygrapefruit/platform/internal/Platform.java b/src/main/java/net/rubygrapefruit/platform/internal/Platform.java index 589b803..c2c8595 100755 --- a/src/main/java/net/rubygrapefruit/platform/internal/Platform.java +++ b/src/main/java/net/rubygrapefruit/platform/internal/Platform.java @@ -34,7 +34,7 @@ public abstract class Platform { public T get(Class type) { throw new NativeIntegrationUnavailableException(String.format("Native integration %s is not supported on this operating system (%s %s)", - type.getName(), getOperatingSystem(), getArchitecture())); + type.getSimpleName(), getOperatingSystem(), getArchitecture())); } public abstract String getLibraryName() throws NativeIntegrationUnavailableException;