30 lines
1.1 KiB
Java
30 lines
1.1 KiB
Java
// 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 <b>will not</b> crash the browser process if the Java method throws an
|
|
* exception. However, the C++ caller <b>must</b> 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).
|
|
*
|
|
* <p>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 "";
|
|
}
|