src/share/vm/utilities/exceptions.hpp

changeset 5259
ef57c43512d6
parent 4425
aefb345d3f5e
child 5518
5d9995d16b26
equal deleted inserted replaced
5255:a837fa3d3f86 5259:ef57c43512d6
192 192
193 #define PENDING_EXCEPTION (((ThreadShadow*)THREAD)->pending_exception()) 193 #define PENDING_EXCEPTION (((ThreadShadow*)THREAD)->pending_exception())
194 #define HAS_PENDING_EXCEPTION (((ThreadShadow*)THREAD)->has_pending_exception()) 194 #define HAS_PENDING_EXCEPTION (((ThreadShadow*)THREAD)->has_pending_exception())
195 #define CLEAR_PENDING_EXCEPTION (((ThreadShadow*)THREAD)->clear_pending_exception()) 195 #define CLEAR_PENDING_EXCEPTION (((ThreadShadow*)THREAD)->clear_pending_exception())
196 196
197 #define CHECK THREAD); if (HAS_PENDING_EXCEPTION) return ; (0 197 #define CHECK THREAD); if (HAS_PENDING_EXCEPTION) return ; (void)(0
198 #define CHECK_(result) THREAD); if (HAS_PENDING_EXCEPTION) return result; (0 198 #define CHECK_(result) THREAD); if (HAS_PENDING_EXCEPTION) return result; (void)(0
199 #define CHECK_0 CHECK_(0) 199 #define CHECK_0 CHECK_(0)
200 #define CHECK_NH CHECK_(Handle()) 200 #define CHECK_NH CHECK_(Handle())
201 #define CHECK_NULL CHECK_(NULL) 201 #define CHECK_NULL CHECK_(NULL)
202 #define CHECK_false CHECK_(false) 202 #define CHECK_false CHECK_(false)
203 203
204 #define CHECK_AND_CLEAR THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; return; } (0 204 #define CHECK_AND_CLEAR THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; return; } (void)(0
205 #define CHECK_AND_CLEAR_(result) THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; return result; } (0 205 #define CHECK_AND_CLEAR_(result) THREAD); if (HAS_PENDING_EXCEPTION) { CLEAR_PENDING_EXCEPTION; return result; } (void)(0
206 #define CHECK_AND_CLEAR_0 CHECK_AND_CLEAR_(0) 206 #define CHECK_AND_CLEAR_0 CHECK_AND_CLEAR_(0)
207 #define CHECK_AND_CLEAR_NH CHECK_AND_CLEAR_(Handle()) 207 #define CHECK_AND_CLEAR_NH CHECK_AND_CLEAR_(Handle())
208 #define CHECK_AND_CLEAR_NULL CHECK_AND_CLEAR_(NULL) 208 #define CHECK_AND_CLEAR_NULL CHECK_AND_CLEAR_(NULL)
209 #define CHECK_AND_CLEAR_false CHECK_AND_CLEAR_(false) 209 #define CHECK_AND_CLEAR_false CHECK_AND_CLEAR_(false)
210 210
280 THREAD); if (HAS_PENDING_EXCEPTION) { \ 280 THREAD); if (HAS_PENDING_EXCEPTION) { \
281 oop ex = PENDING_EXCEPTION; \ 281 oop ex = PENDING_EXCEPTION; \
282 CLEAR_PENDING_EXCEPTION; \ 282 CLEAR_PENDING_EXCEPTION; \
283 ex->print(); \ 283 ex->print(); \
284 ShouldNotReachHere(); \ 284 ShouldNotReachHere(); \
285 } (0 285 } (void)(0
286 286
287 // ExceptionMark is a stack-allocated helper class for local exception handling. 287 // ExceptionMark is a stack-allocated helper class for local exception handling.
288 // It is used with the EXCEPTION_MARK macro. 288 // It is used with the EXCEPTION_MARK macro.
289 289
290 class ExceptionMark { 290 class ExceptionMark {

mercurial