Add java.io.UncheckedIOException

Change-Id: I8410a9eac5bcd4068cb9f275453546a874675c8b
diff --git a/user/super/com/google/gwt/emul/java/io/UncheckedIOException.java b/user/super/com/google/gwt/emul/java/io/UncheckedIOException.java
new file mode 100644
index 0000000..cc4d3b0
--- /dev/null
+++ b/user/super/com/google/gwt/emul/java/io/UncheckedIOException.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2015 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package java.io;
+
+import static javaemul.internal.InternalPreconditions.checkNotNull;
+
+/**
+ * See <a
+ * href="https://docs.oracle.com/javase/8/docs/api/java/io/UncheckedIOException.html">the
+ * official Java API doc</a> for details.
+ */
+public class UncheckedIOException extends RuntimeException {
+  public UncheckedIOException(String message, IOException cause) {
+    super(message, checkNotNull(cause));
+  }
+
+  public UncheckedIOException(IOException cause) {
+    super(checkNotNull(cause));
+  }
+
+  @Override
+  public IOException getCause() {
+    return (IOException) super.getCause();
+  }
+}