diff options
Diffstat (limited to 'luni/src/main/java/java/net/URISyntaxException.java')
-rw-r--r-- | luni/src/main/java/java/net/URISyntaxException.java | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/luni/src/main/java/java/net/URISyntaxException.java b/luni/src/main/java/java/net/URISyntaxException.java new file mode 100644 index 0000000..e7e332e --- /dev/null +++ b/luni/src/main/java/java/net/URISyntaxException.java @@ -0,0 +1,144 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You 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.net; + +import org.apache.harmony.luni.util.Msg; + +/** + * A {@code URISyntaxException} will be thrown if some information could not be parsed + * while creating a URI. + * + * @since Android 1.0 + */ +public class URISyntaxException extends Exception { + + private static final long serialVersionUID = 2137979680897488891L; + + private String input; + + private int index; + + /** + * Constructs a new {@code URISyntaxException} instance containing the + * string that caused the exception, a description of the problem and the + * index at which the error occurred. + * + * @param input + * the string that caused the exception. + * @param reason + * the reason why the exception occurred. + * @param index + * the position where the exception occurred. + * @throws NullPointerException + * if one of the arguments {@code input} or {@code reason} is + * {@code null}. + * @throws IllegalArgumentException + * if the value for {@code index} is lesser than {@code -1}. + * @since Android 1.0 + */ + public URISyntaxException(String input, String reason, int index) { + super(reason); + + if (input == null || reason == null) { + throw new NullPointerException(); + } + + if (index < -1) { + throw new IllegalArgumentException(); + } + + this.input = input; + this.index = index; + } + + /** + * Constructs a new {@code URISyntaxException} instance containing the + * string that caused the exception and a description of the problem. + * + *@param input + * the string that caused the exception. + * @param reason + * the reason why the exception occurred. + * @throws NullPointerException + * if one of the arguments {@code input} or {@code reason} is + * {@code null}. + * @since Android 1.0 + */ + public URISyntaxException(String input, String reason) { + super(reason); + + if (input == null || reason == null) { + throw new NullPointerException(); + } + + this.input = input; + index = -1; + } + + /** + * Gets the index at which the syntax error was found or {@code -1} if the + * index is unknown/unavailable. + * + * @return the index of the syntax error. + * @since Android 1.0 + */ + public int getIndex() { + return index; + } + + /** + * Gets a description of the syntax error. + * + * @return the string describing the syntax error. + * @since Android 1.0 + */ + public String getReason() { + return super.getMessage(); + } + + /** + * Gets the initial string that contains an invalid syntax. + * + * @return the string that caused the exception. + * @since Android 1.0 + */ + public String getInput() { + return input; + } + + /** + * Gets a description of the exception, including the reason, the string + * that caused the syntax error and the position of the syntax error if + * available. + * + * @return a sting containing information about the exception. + * @see java.lang.Throwable#getMessage() + * @since Android 1.0 + */ + @Override + public String getMessage() { + String reason = super.getMessage(); + + if (index != -1) { + return Msg.getString("K0326", //$NON-NLS-1$ + new String[] { reason, Integer.toString(index), input }); + } + return Msg.getString("K0327", //$NON-NLS-1$ + new String[] { reason, input }); + } +} |