diff --git a/src/Composer/EventDispatcher/EventDispatcher.php b/src/Composer/EventDispatcher/EventDispatcher.php
index <HASH>..<HASH> 100644
--- a/src/Composer/EventDispatcher/EventDispatcher.php
+++ b/src/Composer/EventDispatcher/EventDispatcher.php
@@ -295,7 +295,11 @@ class EventDispatcher
                     break;
                 }
             }
-        } catch (\Exception $e) {
+        } catch (\Exception $e) { // TODO Composer 2.2 turn all this into a finally
+            $this->popEvent();
+
+            throw $e;
+        } catch (\Throwable $e) {
             $this->popEvent();
 
             throw $e;
Also handle throwable on supported php versions