Linux? Probably another bug.
Try this:
unittest
{
import core.exception : UnicodeException;
void f()
{
string ret;
int i = -1;
ret ~= i;
}
try
{
f();
}
catch(UnicodeException e)
{
assert(e.msg == "Invalid UTF-8 sequence");
}
}