Как сгенерировать исключение из C при использовании Android NDK?

Начиная с C # 7.1 существует 4 новых подписи для метода Main, которые позволяют сделать это async ( Источник , Источник 2 , Источник 3 ):

public static Task Main();
public static Task Main();
public static Task Main(string[] args);
public static Task Main(string[] args);

Вы можете пометить свой метод Main ключевым словом async и использовать await внутри Main:

static async Task Main(string[] args)
{
    Task getWebPageTask = GetWebPageAsync("http://msdn.microsoft.com");

    Debug.WriteLine("In startButton_Click before await");
    string webText = await getWebPageTask;
    Debug.WriteLine("Characters received: " + webText.Length.ToString()); 
}

C # 7.1 доступен в Visual Studio 2017 15.3.

0
задан ssk 6 March 2019 в 17:53
поделиться

1 ответ

Вы можете выбросить Java Exception, например, IllegalArgumentException, из уровня JNI, как показано ниже:

//JNIEnv *env,

jclass jcls = env->FindClass("java/lang/IllegalArgumentException");
env->ThrowNew(jcls, "Argument cannot be null.");

Кроме того, вы можете проверить статус исключения в уровне JNI, как показано ниже:

//JNIEnv *env,

jboolean flag = env->ExceptionCheck();
if (flag) {
    env->ExceptionClear();
    /* code to handle exception */
}
0
ответ дан shizhen 6 March 2019 в 17:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: