Errors
All Tcl errors, conversion errors and others that may take place when
calling Tcl code from C++, are translated and reported as exceptions of
the tcl_error
type:namespace Tcl {
class tcl_error : public std::runtime_error {
// ...
};
}
This means that the simplest framework for handling such errors may look like:
int main() {
try {
interpreter i;
//...
} catch (tcl_error const &e) {
// some Tcl error
} catch (exception const &e) {
// some other error
}
On the other hand, when calling C++ from Tcl, all C++ exceptions are translated and presented as regular Tcl errors, with error message taken from the C++ exception, if it was from the
std::exception
family. For all other C++ exceptions, the "Unknown error."
message is returned.