R语言 错误处理

R语言 错误处理

错误处理是一个过程,在这个过程中我们要处理不需要的或异常的错误,这些错误可能会在程序执行过程中导致异常的终止。在R编程中,我们基本上有两种方法可以实现错误处理机制。我们可以直接调用stop()或warning()等函数,也可以使用 “warning “或 “warning.expression “等错误选项。在代码中可以用于错误处理的基本函数。

  • stop(…) : 它停止了对当前语句的评估,并产生了一个消息参数。控制权被返回到顶层。
  • waiting(…) : 它的评估取决于错误选项 warn的值。如果警告的值是负的,那么它被忽略。如果值为0(零),它们将被存储并在顶层函数完成其执行后打印出来。如果值是1(1),那么一旦遇到它就会被打印出来,而如果值是2(2),那么产生的警告就会立即转化为错误。
  • tryCatch(…) : 它有助于评估代码和分配异常。

R语言 条件处理

一般来说,如果我们在执行程序时遇到任何意外的错误,我们需要一种有效的、交互式的方法来调试错误,并了解出错的原因。然而,有些错误是预料之中的,但有时模型无法拟合并抛出一个错误。在R语言中基本上有三种方法来处理这种情况和错误。

  • try() :它帮助我们继续执行程序,即使发生错误。
  • tryCatch() :它有助于处理条件并控制基于条件发生的事情。
  • withCallingHandlers() :它是tryCatch()的一个替代方法,负责处理本地处理程序。

R语言 try-catch-finally

与其他编程语言如Java、C++等不同,R中的try-catch-finally语句是作为一个函数使用的。在tryCatch()中主要处理的两个条件是 “错误 “和 “警告”。

语法

check = tryCatch({
    expression
}, warning = function(w){
    code that handles the warnings
}, error = function(e){
    code that handles the errors
}, finally = function(f){
    clean-up code
})
R

例子

# R program illustrating error handling
# Applying tryCatch
tryCatch(               
 
  # Specifying expression
  expr = {                     
    1 + 1
    print("Everything was fine.")
  },
  # Specifying error message
  error = function(e){         
    print("There was an error message.")
  },
  
  warning = function(w){      
    print("There was a warning message.")
  },
  
  finally = {            
    print("finally Executed")
  }
)
R

输出

[1] "Everything was fine."
[1] "finally Executed"
R

R语言 withCallingHandlers()

在R语言中, withCallingHandlers()tryCatch() 的一个变种 。 唯一的区别是tryCatch()处理的是退出的处理程序,而withCallingHandlers()处理的是本地处理程序。

例子

# R program illustrating error handling
 
# Evaluation of tryCatch
check <- function(expression){
 
withCallingHandlers(expression,
         
        warning = function(w){
        message("warning:\n", w)
        },
        error = function(e){
        message("error:\n", e)
        },
        finally = {
        message("Completed")
        })
}
 
check({10/2})
check({10/0})
check({10/'noe'})
R

输出

R编程中的错误处理

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册