hotspot/src/share/vm/utilities/exceptions.cpp
void Exceptions::_throw_msg(Thread* thread, const char* file, int line, Symbol* h_name, const char* message, Handle h_loader, Handle h_protection_domain) {
{- -------------------------------------------
(1) Exceptions::special_exception() を呼んで, 特殊ケースかどうかをチェックしておく.
もし処理しなくていいケースなら, ここでリターン.
---------------------------------------- -}
// Check for special boot-strapping/vm-thread handling
if (special_exception(thread, file, line, h_name, message)) return;
{- -------------------------------------------
(1) Exceptions::new_exception() で新しい例外オブジェクトを作った後,
Exceptions::_throw() で pending_exception フィールドにセットする.
---------------------------------------- -}
// Create and throw exception
Handle h_cause(thread, NULL);
Handle h_exception = new_exception(thread, h_name, message, h_cause, h_loader, h_protection_domain);
_throw(thread, file, line, h_exception, message);
}
This document is available under the GNU GENERAL PUBLIC LICENSE Version 2.