Experiment for Bug 337413 - [otjld][compiler] consider changing LiftingFailedException to a checked exception.

diff --git a/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/BaseMethodTransformation.java b/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/BaseMethodTransformation.java
index 7b8b4c1..b97a45b 100644
--- a/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/BaseMethodTransformation.java
+++ b/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/BaseMethodTransformation.java
@@ -1105,6 +1105,7 @@
 	 *  in a given list.
 	 *  The switch block is furthermore wrapped in a try-catch block.
 	 *  Herein all {@link org.objectteams.LiftingVetoException LiftingVetoException}
+	 *  and {@link org.objectteams.LiftingFailedException LiftingFailedException}
 	 *  are caught, and possibly reported (if Dot.log.lift ist set).
 	 * @param methodBindings hash map of team names to 'MethodBinding' lists
 	 * @param mg method being generated.
@@ -1218,6 +1219,7 @@
 			createRecursiveCall(il, mg, ot_result, 1, 0, mb.getBaseMethodName(), mb.getBaseMethodSignature(), firstLine);
 
 		mg.addExceptionHandler(il.getStart(), endTry, hdlr, liftingVeto);
+		mg.addExceptionHandler(il.getStart(), endTry, hdlr, liftingFailed);
 
 		InstructionHandle nop = il.append(new NOP());
 		skipHdlr.setTarget(nop);
@@ -1537,6 +1539,7 @@
 			createRecursiveCall(addition, mg, ot_result, 0, 1, mb.getBaseMethodName(), mb.getBaseMethodSignature(), firstLine);
 			// =====================================
 			mg.addExceptionHandler(addition.getStart(), endTry, hdlr, liftingVeto);
+			mg.addExceptionHandler(addition.getStart(), endTry, hdlr, liftingFailed);
 			
 			InstructionHandle nop = addition.append(new NOP());
 			skipHdlr.setTarget(nop);
diff --git a/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/OTConstants.java b/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/OTConstants.java
index 847ef17..809a136 100644
--- a/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/OTConstants.java
+++ b/plugins/org.eclipse.objectteams.runtime/src/org/eclipse/objectteams/otre/OTConstants.java
@@ -45,6 +45,8 @@
     ObjectType teamClassType     = new ObjectType(teamClassName);
 	/**                            Type <tt>org.objectteams.LiftingVetoException</tt> */
     ObjectType liftingVeto   = new ObjectType("org.objectteams.LiftingVetoException");
+	/**                            Type <tt>org.objectteams.LiftingVetoException</tt> */
+    ObjectType liftingFailed = new ObjectType("org.objectteams.LiftingFailedException");
     /**                            Type <tt>org.eclipse.objectteams.otre.OTREInternalError</tt> */	
     ObjectType internalError = new ObjectType("org.eclipse.objectteams.otre.OTREInternalError");
 	/**                            Type <tt>org.objectteams.ResultNotProvidedError</tt> */	
diff --git a/plugins/org.eclipse.objectteams.runtime/src/org/objectteams/LiftingFailedException.java b/plugins/org.eclipse.objectteams.runtime/src/org/objectteams/LiftingFailedException.java
index 99f2dd2..511b4ef 100644
--- a/plugins/org.eclipse.objectteams.runtime/src/org/objectteams/LiftingFailedException.java
+++ b/plugins/org.eclipse.objectteams.runtime/src/org/objectteams/LiftingFailedException.java
@@ -20,7 +20,7 @@
  * This exception signals that lifting failed due to unresolved
  * binding ambiguity.
  */
-public class LiftingFailedException extends RuntimeException {
+public class LiftingFailedException extends Exception {
 	/**
 	 * 
 	 */