String index out of range: -2
Is it poor form to request that when performing a cut, that we have the ability to select if the process should fail or if it should ignore an error when the data string is not long enough for the cut being requested?
Best Answers
-
The 'Cut' operator. If I have a string that I want cut out some information I put in the start and end position. The problem comes in if I set an end position and the string is shorter than the total length I set then the I get an 'index out of range' error.
Instead of firing the error I should be able to say do not fault if the string is shorter than the stipulated range.
0 -
Hi @robin,
i've tried to reproduce it with the attached process and it does not fail? Can you share an example of a failing operator?
BR,
Martin
<?xml version="1.0" encoding="UTF-8"?><process version="9.0.002">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="9.0.002" expanded="true" name="Process">
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="9.0.002" expanded="true" height="68" name="Retrieve Golf" width="90" x="179" y="34">
<parameter key="repository_entry" value="//Samples/data/Golf"/>
</operator>
<operator activated="true" class="cut" compatibility="9.0.002" expanded="true" height="82" name="Cut" width="90" x="313" y="34">
<parameter key="attribute" value="Outlook"/>
<parameter key="last_character_index" value="58"/>
</operator>
<connect from_op="Retrieve Golf" from_port="output" to_op="Cut" to_port="example set input"/>
<connect from_op="Cut" from_port="example set output" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>5
Answers
-
0
-
The 'Cut' operator. If I have a string that I want cut out some information I put in the start and end position. The problem comes in if I set an end position and the string is shorter than the total length I set then the I get an 'index out of range' error.
Instead of firing the error I should be able to say do not fault if the string is shorter than the stipulated range.
0 -
Hi @robin,
i've tried to reproduce it with the attached process and it does not fail? Can you share an example of a failing operator?
BR,
Martin
<?xml version="1.0" encoding="UTF-8"?><process version="9.0.002">
<context>
<input/>
<output/>
<macros/>
</context>
<operator activated="true" class="process" compatibility="9.0.002" expanded="true" name="Process">
<process expanded="true">
<operator activated="true" class="retrieve" compatibility="9.0.002" expanded="true" height="68" name="Retrieve Golf" width="90" x="179" y="34">
<parameter key="repository_entry" value="//Samples/data/Golf"/>
</operator>
<operator activated="true" class="cut" compatibility="9.0.002" expanded="true" height="82" name="Cut" width="90" x="313" y="34">
<parameter key="attribute" value="Outlook"/>
<parameter key="last_character_index" value="58"/>
</operator>
<connect from_op="Retrieve Golf" from_port="output" to_op="Cut" to_port="example set input"/>
<connect from_op="Cut" from_port="example set output" to_port="result 1"/>
<portSpacing port="source_input 1" spacing="0"/>
<portSpacing port="sink_result 1" spacing="0"/>
<portSpacing port="sink_result 2" spacing="0"/>
</process>
</operator>
</process>5