Description
The purpose of EvalError
is designed to abort script when syntax or language errors occur which are considered unrecoverable. These are meant to include the JAVA equivalent of conditions which normally result in compile time errors.
There were arguments raised by @drosenbauer and @opeongo that while BeanShell aims to be a dynamic scripting language it enforces unnecessarily strict conditions by conforming to all the same language parameters as JAVA does. There may be some of the static typed exceptions which should not apply to a dynamic typed language in general.
BeanShell affirmed its policy on the JAVA likeness #501 which clarified that while BeanShell aims to "work like java" it must not be mistaken to also mean that BeanShell will "break like java does". Which implies that should BeanShell not fail like JAVA for the conditions of a certain compile time error it would not be in violation of the policy including where StrictJava
compliance is concerned.
For the purpose of finding an appropriate BeanShell centric solution the scope of the problem needs to be clearly defined by producing a comprehensive list of all the causes that previously were considered EvalError
, identifying clear distinctions and associate appropriate types which may lead to the allocation of the appropriately typed dynamic language exceptions.
The initial analysis of the previous errors can be collected at the BeanShell EvalError list google docs sheet. Anyone who wants to assist can email me for write access.