Не могу понять почему кидает ArrayIndexOutOfBoundsException в 31 строчке. Помогите, пожалуйста, разобраться.
package com.javarush.task.task15.task1527;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.net.MalformedURLException;
import java.util.LinkedHashMap;
/*
Парсер реквестов
*/
public class Solution {
public static void main(String[] args) throws MalformedURLException, IOException, ArrayIndexOutOfBoundsException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
URL url = new URL(reader.readLine());
String s = url.getQuery(); //получаем всю строку с параметрами после ?
LinkedHashMap<String, String> hm = new LinkedHashMap<>(); //делаем список для пар параметр-значение
String[] mass;
String[] subMass;
mass = s.split("&"); //разбиваем ее на парым параметр+значение(name=Amigo)
for (String t : mass) { //проходимся по всему списку пар параметр-значение
subMass = t.split("="); //отделяем параметр и значение друг от друга
hm.put(subMass[0], subMass[1]); //используем hashMap, в "ключ" пишем переменную, в "значение" значение 10 и по кругу проганяем весь список
}
//выводим ключи
for (String key : hm.keySet()) {
System.out.print(key + " ");
}
if (hm.containsKey("obj")) {
String n = hm.get("obj");
try {
double d = Double.parseDouble(hm.get("obj"));
alert(d); }
catch (Exception e) {
alert(n);
}
}
}
public static void alert(double value) {
System.out.println("double " + value);
}
public static void alert(String value) {
System.out.println("String " + value);
}
}