Короткий ответ: вам нужно выполнить обратный вызов следующим образом:
function callback(response) {
// Here you can do what ever you want with the response object.
console.log(response);
}
$.ajax({
url: "...",
success: callback
});
Вы обнаруживаете общее исключение, в то время как OutOfMemoryError является ошибкой, которая также является Throwable.
Что вы получили
java.lang.Object
↳ java.lang.Throwable
↳ java.lang.Error
↳ java.lang.VirtualMachineError
↳ java.lang.OutOfMemoryError
Что вы можете поймать
java.lang.Object
↳ java.lang.Throwable
↳ java.lang.Exception
Итак, чтобы поймать все возможные Throwables, вам нужно поймать
try {
//...
} catch (Throwable e) {
e.printStackTrace();
}
Использовать catch OutOfMemoryError not Exception!
try {
// your code
} catch (OutOfMemoryError e) {
}
Как только программа выходит из памяти, ее может быть сложно восстановить. Вы должны тщательно подумать о том, как пытаться очистить, когда это произойдет. Например, в вашем файле saveImageToExternalStorage он не очищает fOut, если в try / catch возникает исключение. Поэтому вы должны делать такие вещи, как put
OutputStream fOut = null;
вне try / catch, а затем закрывать его в блоке finally try / catch. И обратите внимание на возможность дальнейших исключений в улове блоков finally.