在我的程序中,我从控制台传递一个参数并将其保存到一个变量中。比方说
const string FileName= argv[1];
如果没有参数通过,我会得到这个
terminate called throwing an exception
如何捕获异常并向用户显示没有传递参数的正确错误?
在我的程序中,我从控制台传递一个参数并将其保存到一个变量中。比方说
const string FileName= argv[1];
如果没有参数通过,我会得到这个
terminate called throwing an exception
如何捕获异常并向用户显示没有传递参数的正确错误?
argc
给你的大小argv
,所以在访问之前检查它的值argv
。请记住,它argv
是从零开始的,所以 bounds 也是如此argv[0, ..., arrc - 1]
。有用的argv[argc]
是,始终设置为 NULL。
访问的无效元素argv
是未定义的行为。
最后,argv[0]
(如果它不是 NULL)是程序名称。
在您的情况下,您只需检查 的值argc
,因为它包含解析为 argv 的参数数量。
您的 main 有两个参数 -argv
和argc
. 虽然argv
存储传递给您的程序的参数argc
存储它们的计数。因此,您可以通过检查argc
.
但是请记住,argv 中的第一个值是可执行文件名称,因此如果您想检查参数是否已传递给您的程序,您应该进行如下检查:
if (argc >= 2) {
... do stuff ...
}
您应该检查argc
如下:
const string FileName= (argc < 2)?string():argv[1];
至于您的具体问题,您可以通过 try/catch 块捕获异常,如
try{
exceptionThrowingOperation();
}
catch( ThrownExceptionType& e ){
exceptionHandling(e);
}