proc main() { var badUtf = new PackUbyte(10); badUtf[0] = 'B'; badUtf[1] = 'a'; badUtf[2] = 'd'; badUtf[3] = ' '; badUtf[4] = 0x92; // Illegal UTF-8 char badUtf[5] = ' '; badUtf[6] = 'U'; badUtf[7] = 'T'; badUtf[8] = 'F'; badUtf[9] = '\n'; var f = new File("badutf8a.txt", "wb"); f.write(badUtf); f.close(); // "r+" so we can delete it when we are don f = new File("badutf8a.txt", "r+"); try { var s = f.readstr(); "", s, '\n'; } catch (e) { if (e == oadl::UTF8Check) { "Caught UTF8Check as expected\n"; f.close("delete"); oadl::halt(); } } "Failed to catch UTF8check\n"; }