多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# 6.7 日志和异常 ## 6.7.1 Log ROS为开发者和用户提供了一套日志记录和输出系统,这套系统的实现方式是基于topic,也就是每个节点都会把一些日志信息发到一个统一的topic上去,这个topic就是`/rosout`。 `rosout`本身也是一个node,它专门负责进行日志的记录。我们在启动master的时候,系统就会附带启动rosout。 在roscpp中进行日志的输出,需要先`include <ros/console.h>`,这个头文件包括了五个级别的日志输出接口,分别是: * DEBUG * INFO * WARN * ERROR * FATAL 用法非常简单: ```cpp ROS_DEBUG("The velocity is %f", vel); ROS_WARN("Warn: the use is deprecated."); ROS_FATAL("Cannot start this node."); ... ``` 当然也可以在一些特定场景,特定条件下输出,不过对于普通开发者来说可能用不到这么复杂的功能。具体可参考:http://wiki.ros.org/roscpp/Overview/Logging ## 6.7.2 Exception roscpp中有两种异常类型,当有以下两种错误时,就会抛出异常: ```cpp ros::InvalidNodeNameException 当无效的基础名称传给ros::init(),通常是名称中有/,就会触发 ros::InvalidNameExcaption 当无效名称传给了roscpp ```