Type mismatch makes TVM core dumped, which cannot be captured as a Python exception

Hi everyone, I met with a problem when playing with TIR that I passed in an argument of a wrong type by mistake, which led to a crash.

The following code triggers the problem, where I pass an int to the name argument of Var. Is such behavior unintended?

# OS: CentOS 7 & TVM: 0.8.dev0
from tvm import tir

if __name__ == '__main__':
    try:
        tir.Var(name=1, dtype='int')
    except:
        print("Should be captured")

Error message:

terminate called after throwing an instance of 'tvm::runtime::InternalError'
  what():  [09:58:23] ../src/runtime/object.cc:141: 
---------------------------------------------------------------
An error occurred during the execution of TVM.
For more information, please see: https://tvm.apache.org/docs/errors.html
---------------------------------------------------------------
  Check failed: (tindex < type_table_.size() && type_table_[tindex].allocated_slots != 0) is false: Unknown type index 0
Stack trace:
  0: tvm::runtime::TVMArgValue::operator std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >() const
  1: tvm::runtime::PackedFuncValueConverter<tvm::runtime::String>::From(tvm::runtime::TVMArgValue const&)
  2: tvm::runtime::TVMMovableArgValueWithContext_::operator tvm::runtime::String<tvm::runtime::String>() const
  3: std::_Function_handler<void (tvm::runtime::TVMArgs, tvm::runtime::TVMRetValue*), void tvm::runtime::TypedPackedFunc<tvm::tir::Var (tvm::runtime::String, tvm::runtime::TVMArgValue, tvm::Span)>::AssignTypedLambda<tvm::tir::$_0>(tvm::tir::$_0, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >)::{lambda(tvm::runtime::TVMArgs const&, tvm::runtime::TVMRetValue*)#1}>::_M_invoke(std::_Any_data const&, tvm::runtime::TVMArgs&&, tvm::runtime::TVMRetValue*&&)
  4: TVMFuncCall


[1]    180052 abort (core dumped)

Try dtype=int32 or dtype=int64. int is not a type in TVM.