Это проблема:
for(int i = 0; i <= InventorySystem.drugsOwned.size(); i++)
out.write(Integer.toString(InventorySystem.drugsOwned.get(i))+"\n");
<=
должно быть <
.Поэтому, если в коллекции 5 элементов, вы запрашиваете элемент 5, который является элементом 6th , так как индекс основан на 0.Это вызовет исключение.
Это затем маскируется этим:
catch (Throwable e)
{
}
Вы полностью теряете здесь свои чувства в плане диагностики:
- Если толькоВы действительно можете обработать исключение, не перехватывать его - или перехватывать, а затем повторно выбрасывать после регистрации (или чего-либо еще)
- Поймать определенных исключений везде, где вы можете.(Поймать
Exception
плохо; ловить Throwable
хуже.) - Тихо ловить без регистрации - ужасная идея.Это означает, что вы не знаете как часто у вас возникают проблемы или какими они были.
(Кроме того, код предполагает, что вы либо чрезмерно используете статические переменные, либонужно разобраться в ваших соглашениях об именах. Это другой вопрос.)