1
오류/경고 발생시 다른 기능을 실행하려는 tryCatch
함수를 사용하고 있습니다. 이 다른 함수는 일부 인수에 따라 다르며 어떤 이유로 인해 tryCatch
은 오류 및 경고 함수 일 때 tryCatch
을 인식하지 못합니다. 여기 저도 같은 문제에 직면하고있어 단순화 된 기능입니다 :오류/경고 발생시 tryCatch에서 함수 실행
essai <- function(x){
y <- 2
result <- tryCatch({
sqrt(x*y)
} , warning = function(cond,x,y) {
message(cond)
sqrt(abs(x*y))
} , error = function(cond,x,y) {
message(cond)
sqrt(abs(x*y))
} , finally = {
message("done")
})
}
nbs <- c(1,2,3,-1,-2)
lapply(nbs, essai)
그러나 나는 여기 Error in value[[3L]](cond) : argument "x" is missing, with no default
를라는 오류 메시지가 있습니다. R은 실패한 함수에서 사용 된 x와 y를 재사용해야한다는 것을 이해하지 못합니다. 이유는 무엇입니까?
경고/오류 함수에서 x와 y를 y로 전달하는 이유는 무엇입니까? 꼭해야 할 이유가 없습니다. 그러나 x/y 매개 변수를 경고/오류 함수로 제거하면 x와 y를 호출하는 환경에서 잡아낼 수 있기 때문에 직접 사용할 수 있습니다. 사이드 노트에서 나는이 경우에 직접'sqrt (abs (x * y))'를 사용할 수 있기 때문에 이것이 실제 유스 케이스가 아니라고 가정해야한다. – Dason
예, 실제로 인공적이며 단순화 된 기능으로 내 문제가 재현됩니다. 어떤 경우에는 인수를 넣을 지 명확하지 않지만 – Anais
'무엇을 의미하는지 모르겠습니다. 오류/경고 기능은 추가 인수를 취할 수 없기 때문에 인수를 넣거나 갖지 않습니다. – Dason