我有一个这样的函数
const myFunction = async function (arg1,arg2) {
**update**
I am casting arg2 into a variable called 'command'
const command = arg2 as {
api_base_url: string
session_id: string
}
**end of update**
try {
const url = `${command.api_base_url}/rest/api/latest/projects/`
const getData= await axios.get(url)
}
catch (error) {
context.log(error)
}
}
当我以arg2
的形式传递一个空对象时,这意味着url
变量从未被创建,因此get
请求从未被发出。
但是没有抛出错误!如何确保arg2
为空或无法创建url
变量时出错?
我认为try/catch
会自动这样做,但我想我的理解是不正确的。
2条答案
按热度按时间arknldoa1#
在您的示例中,如果将空对象作为arg2参数传递,则不会定义url变量,但try和catch语句不会捕获此错误。相反,您可以在尝试创建url变量之前添加一个检查,以查看arg2参数是否为空对象,如下所示:
使用此更改后,如果将空对象作为arg2参数传递,则将引发Error并由catch块捕获,并记录错误消息。
或者,您可以在尝试创建url变量之前添加一项检查,以查看arg2对象是否具有API_base_url属性,如下所示:
通过此更改,如果arg2对象缺少API_base_url属性,则将引发Error并由catch块捕获,并记录错误消息。
bbmckpt72#
如果传入一个空对象作为arg2,则URL将为
undefined/rest/api/latest/projects
,并且请求将针对该URL发出。