Android, std::runtime_error не перехватывается std::ExceptionAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android, std::runtime_error не перехватывается std::Exception

Сообщение Anonymous »

У меня есть следующий код на Android:

Код: Выделить всё

try {
LOGI("OP SQLITE 🟦", "Before exception");
throw std::runtime_error("Test exception");
} catch (const std::exception &exc) {
auto what = exc.what();
LOGE("OP_SQLITE ERROR 🟥", what);
} catch (const std::runtime_error &exc) {
LOGE("OP_SQLITE ERROR 🟠", "Blah");
}
В моих журналах:

Код: Выделить всё

17:04:15.539  I  OP SQLITE 🟦
17:04:15.539  E  OP_SQLITE ERROR 🟠
в iOS первый улов правильно перехватывает исключение, но на Android только второй улов способен перехватить ошибку. Я хочу, чтобы одна уловка работала для всех платформ. Я использую довольно свежую версию NDK, а также использую общую библиотеку libc в своем build.gradle:

Код: Выделить всё

cppFlags "-std=c++17", "-frtti", "-O2", "-fexceptions", "-DONANDROID"
abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a'
arguments "-DANDROID_STL=c++_shared",
"-DSQLITE_FLAGS='$sqliteFlags'",
"-DUSE_SQLCIPHER=${useSQLCipher ? 1 : 0}",
"-DUSE_CRSQLITE=${useCRSQLite ? 1 : 0}",
"-DUSE_LIBSQL=${useLibsql ? 1 : 0}",
"-DUSE_SQLITE_VEC=${useSqliteVec ? 1 : 0}",
"-DUSER_DEFINED_SOURCE_FILES=${sourceFiles}",
"-DUSER_DEFINED_TOKENIZERS_HEADER_PATH='${tokenizersHeaderPath}'"
и в моем cmakelists.txt:

Код: Выделить всё

set (PACKAGE_NAME "op-sqlite")
set (CMAKE_CXX_STANDARD_REQUIRED ON)
set (CMAKE_CXX_EXTENSIONS OFF)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -fexceptions -frtti -stdlib=libc++")
set (BUILD_DIR ${CMAKE_SOURCE_DIR}/build)
Есть идеи, что может быть не так?

Подробнее здесь: https://stackoverflow.com/questions/792 ... dexception
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»