diff --git a/jdk/java/io/FileNotFoundException.js b/jdk/java/io/FileNotFoundException.js index 9b46c66..a621275 100644 --- a/jdk/java/io/FileNotFoundException.js +++ b/jdk/java/io/FileNotFoundException.js @@ -1,4 +1,9 @@ jdk.imports['java.io.FileNotFoundException'].load = async () => { - class FileNotFoundException {} + class FileNotFoundException extends Exception { + constructor(msg) { + super(msg); + this.name = 'FileNotFoundException'; + } + } jdk.java.io.FileNotFoundException = FileNotFoundException; }; diff --git a/jdk/java/util/Scanner.js b/jdk/java/util/Scanner.js index 41a52c4..46d1778 100755 --- a/jdk/java/util/Scanner.js +++ b/jdk/java/util/Scanner.js @@ -1,5 +1,6 @@ jdk.imports['java.util.Scanner'].load = async () => { const InputStream = await jdk.import('java.io.InputStream'); + const FileNotFoundException = await jdk.import('java.io.FileNotFoundException'); class Scanner { constructor(input) { @@ -12,7 +13,11 @@ jdk.imports['java.util.Scanner'].load = async () => { } async _loadFile(filePath) { this.in = new InputStream(); - this.in.stream = await (await fetch(filePath)).text(); + let data = await fetch(filePath); + if (data.status == 404 || data.status == 403) { + throw new FileNotFoundException(filePath); + } + this.in.stream = await data.text(); this._loading = false; } async hasNext(pattern) { diff --git a/package.json b/package.json index 87d0395..0601bcc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "java2js", - "version": "1.2.6", + "version": "1.2.7", "description": "Converts Java to JavaScript and runs it with a JS JDK", "main": "jdk.js", "scripts": {