Добрый день,
Есть код:
X++:
BinData tmpBinData = new BinData();
str text;
;
tmpBinData.setAsciiData(text);
Если подаётся text с символом вне Windows-1252(ANSI) кидается ошибка:
Error:Invalid character in ASCII string. All characters must be >= 0 and <= 255.
Ошибку надо поймать, и вместо неё отобразить нужную для пользователя информацию.
X++:
try
{
tmpBinData.setAsciiData(text);
}
catch
{
throw error("");
}
Не ловит её.
Второй параметр _codePage = 65001 к setAsciiData() не подходит, так как ошибка должна быть.
Единственное что пока придумал, сделать так:
X++:
TextBuffer tb = new TextBuffer();
int i;
int charIntValue;
char char;
;
tb.appendText(text);
for(i=0; i< tb.size(); i++)
{
char = tb.subStr(i, 1);
charIntValue = System.Convert::ToInt16(System.Convert::ToChar(char));
if(charIntValue < 0 || charIntValue > 255)
throw error("");
}
tmpBinData.setAsciiData(text):
Вопрос такой, можно ли как то отловить это исключение, в момент его появления используя try/catch. Или может возможно решить эту проблему менее громоздким способом.