下面列出了javax.script.ScriptException#toString ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void runScript(List<ScriptRecord> records, ScriptingProcessorOutput out) throws StageException {
try {
runScript(createProcessBindings(records, out));
} catch (ScriptException ex) {
switch (processingMode) {
case RECORD:
errorRecordHandler.onError(
new OnRecordErrorException(
getScriptObjectFactory().getRecord(records.get(0)),
Errors.SCRIPTING_05,
ex.toString(),
ex
)
);
break;
case BATCH:
throw new StageException(Errors.SCRIPTING_06, ex.toString(), ex);
default:
throw new IllegalStateException(
Utils.format("Unknown OnError value '{}'", getContext().getOnErrorRecord(), ex)
);
}
}
}
@Override
public void run(String alias, String[] args) {
if (args.length < 1) {
throw new CommandException("Usage: ." + alias + " <new/eval> [<script>]");
}
if (args[0].equalsIgnoreCase("new")) {
ClientBase.INSTANCE.scriptManager.newScript();
ChatUtils.send("New script created.");
}
if (args.length >= 2 && args[0].equalsIgnoreCase("eval")) {
StringBuilder builder = new StringBuilder();
for (int i = 1; i < args.length; i++) {
builder.append(args[i]);
if (i != args.length - 1) {
builder.append(" ");
}
}
try {
ChatUtils.info("Result: " + ClientBase.INSTANCE.scriptManager.eval(builder.toString()));
} catch (ScriptException e) {
throw new CommandException(e.toString());
}
}
}
@Override
public void produce(Map<String, String> lastOffsets, int maxBatchSize) throws StageException {
try {
runScript(createBindings(lastOffsets, maxBatchSize));
} catch (ScriptException e) {
throw new StageException(Errors.SCRIPTING_10, e.toString());
}
}