void checkTryCatchOrder() {
		/*
		 * Check if try/catch ranges are okay. The following succeeds for all
		 * classes generated by the sun java compiler, but hand optimized
		 * classes (or generated by other compilers) will fail.
		 */
		Handler last = null;
		for (Iterator i = handlers.iterator(); i.hasNext();) {
			Handler exc = (Handler) i.next();
			int start = exc.start.getAddr();
			int end = exc.endAddr;
			int handler = exc.handler.getAddr();
			if (start >= end || handler < end)
				throw new AssertError("ExceptionHandler order failed: not "
						+ start + " < " + end + " <= " + handler);
			if (last != null
					&& (last.start.getAddr() != start || last.endAddr != end)) {
				/*
				 * The last handler does catch another range. Due to the order:
				 * start < last.start.getAddr() || end > last.end.getAddr()
				 */
				if (end > last.start.getAddr() && end < last.endAddr)
					throw new AssertError(
							"Exception handlers ranges are intersecting: ["
									+ last.start.getAddr() + ", "
									+ last.endAddr + "] and [" + start + ", "
									+ end + "].");
			}
			last = exc;
		}
	}