// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. package org.jni_zero; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; /** * Similar to {@link CalledByNative}, this also exposes JNI bindings to native code. The main * difference is this will not crash the browser process if the Java method throws an * exception. However, the C++ caller must handle and clear the exception before calling into * any other Java code, otherwise the next Java method call will crash (with the previous call's * exception, which leads to a very confusing debugging experience). * *

Usage of this annotation should be very rare; due to the complexity of correctly handling * exceptions in C++, prefer using {@link CalledByNative}. */ @Target(ElementType.METHOD) @Retention(RetentionPolicy.CLASS) public @interface CalledByNativeUnchecked { /* * If present, tells which inner class the method belongs to. */ public String value() default ""; }