diff --git a/runtime/core/core_language_context.h b/runtime/core/core_language_context.h index 112e485bfe33b3c9eca73415b19879a6d384fced..a2adaaa3af375b9a63080cc1b3ef2406a7dd7c6d 100644 --- a/runtime/core/core_language_context.h +++ b/runtime/core/core_language_context.h @@ -141,6 +141,11 @@ public: return utf::CStringAsMutf8("Lpanda/IllegalArgumentException;"); } + const uint8_t *GetIllegalAccessExceptionClassDescriptor() const override + { + return utf::CStringAsMutf8("Lpanda/IllegalAccessException;"); + } + const uint8_t *GetOutOfMemoryErrorClassDescriptor() const override { return utf::CStringAsMutf8("Lpanda/OutOfMemoryError;"); diff --git a/runtime/exceptions.cpp b/runtime/exceptions.cpp index 8a00323dded4bcbdf74c4fa20d204b9589337122..2ba9dfcb2aaa46c83af249fa2875fcf8c19618c0 100644 --- a/runtime/exceptions.cpp +++ b/runtime/exceptions.cpp @@ -246,7 +246,7 @@ void ThrowIllegalAccessException(const PandaString &msg) auto *thread = ManagedThread::GetCurrent(); auto ctx = GetLanguageContext(thread); - ThrowException(ctx, thread, ctx.GetIllegalArgumentExceptionClassDescriptor(), utf::CStringAsMutf8(msg.c_str())); + ThrowException(ctx, thread, ctx.GetIllegalAccessExceptionClassDescriptor(), utf::CStringAsMutf8(msg.c_str())); } void ThrowOutOfMemoryError(ManagedThread *thread, const PandaString &msg) diff --git a/runtime/include/language_context.h b/runtime/include/language_context.h index 967b7222fe0bdb7308b16f5da04723286187b07f..9ae8c5afd14aa69c73587536395957ffadc8f7f4 100644 --- a/runtime/include/language_context.h +++ b/runtime/include/language_context.h @@ -92,6 +92,8 @@ public: virtual const uint8_t *GetIllegalArgumentExceptionClassDescriptor() const = 0; + virtual const uint8_t *GetIllegalAccessExceptionClassDescriptor() const = 0; + virtual const uint8_t *GetOutOfMemoryErrorClassDescriptor() const = 0; virtual const uint8_t *GetNoClassDefFoundErrorDescriptor() const = 0; @@ -360,6 +362,11 @@ public: return base_->GetIllegalArgumentExceptionClassDescriptor(); } + const uint8_t *GetIllegalAccessExceptionClassDescriptor() const + { + return base_->GetIllegalAccessExceptionClassDescriptor(); + } + const uint8_t *GetOutOfMemoryErrorClassDescriptor() const { return base_->GetOutOfMemoryErrorClassDescriptor();