Можно как-то заставить Kotlin ScriptEngineManager ...
# russian
y
Можно как-то заставить Kotlin ScriptEngineManager не ломаться после первого исключения. Пример кода:
Copy code
val engine = ScriptEngineManager().getEngineByExtension("kts")!!
try { engine.eval("throw Exception()") } catch (e: Exception) { }

engine.eval("2 + 2") // Тоже падает с ошибкой
После первой ошибки, любой eval падает с
Copy code
Caused by: java.lang.IllegalArgumentException: Could not find a classifier for File name: Line_1.kts Physical: true Injected: false
<caret>2 + 2.
Found descriptor: public final class Line_1 : org.jetbrains.kotlin.script.jsr223.KotlinStandardJsr223ScriptTemplate defined in root package (class org.jetbrains.kotlin.resolve.lazy.descriptors.LazyPackageDescriptor).

	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.findClassDescriptor(LazyDeclarationResolver.java:96)
	at org.jetbrains.kotlin.resolve.lazy.LazyDeclarationResolver.getScriptDescriptor(LazyDeclarationResolver.java:77)
	at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer$analyzeDeclarations$1.visitScript(LazyTopDownAnalyzer.kt:84)
	at org.jetbrains.kotlin.psi.KtVisitorVoid.visitScript(KtVisitorVoid.java:515)
	at org.jetbrains.kotlin.psi.KtVisitorVoid.visitScript(KtVisitorVoid.java:21)
	at org.jetbrains.kotlin.psi.KtScript.accept(KtScript.java:83)
	at org.jetbrains.kotlin.psi.KtElementImplStub.accept(KtElementImplStub.java:58)
	at org.jetbrains.kotlin.resolve.ExceptionWrappingKtVisitorVoid.visitDeclaration(ExceptionWrappingKtVisitorVoid.kt:32)