I was trying to neutralize a thread using Byteman but unfortunately/fortunately the way Thread is written these days this is not so simple. The ThreadDeath raised by my rule by calling Thread.stop() (there is byteman specific way to do this killThread but that has the same issue) is handled by my code which is resilient and as such it catches RuntimeExceptions, it doesn't handle Errors though (due to domain specific justification).

Therefore I figured, OK, I will throw an Error in my rule to neutralize this thread.

Unfortunately byteman does not allow throwing *undeclared* Errors out of the target method of a rule.

See the JIRA for my comments on this. In brief, throwing an Error is a much more serious issue than throwing an Exception precisely because apps are not expected to catch and handle them. However, I will be happy to provide this fucntionality in Byteman even if I recommend using it sparingly.