jjzjj

Handling

全部标签

error-handling - Go 中如何处理异步错误?

我正在开发我的第一个真正的Go项目,一个消息传递API。我使用channel在使用线程不安全、基于事件的C协议(protocol)库的用户goroutine和库goroutine之间传递消息和其他数据。详情https://github.com/apache/qpid-proton/blob/master/proton-c/bindings/go/README.md我的问题分为两个相关部分:1。跨channelhandler错误的常用习惯用法有哪些?一端的goroutine爆炸了,我如何确保另一端解除阻塞,得到一个error值并且以后不会再次被阻塞?致读者:我可以关闭channel,但没

error-handling - Go 中如何指定和处理特定的错误?

我编写了这个通过RedditJSON的非常基本的解析器,我很好奇我如何专门管理Go中的错误。例如,我有一个链接的“获取”方法:funcGet(redditstring)([]Item,error){url:=fmt.Sprintf("http://reddit.com/r/%s.json",reddit)resp,err:=http.Get(url)iferr!=nil{returnnil,err}deferresp.Body.Close()ifresp.StatusCode!=http.StatusOK{returnnil,err}/**Othercodehere*/}我如何处理来自

error-handling - 返回结构时的错误处理

据我所知(来自here和阅读standerd库),在返回数据和错误的库中处理错误的惯用方式。问题是,当我确实运行时必须返回一个错误,我应该返回什么作为我的数据?空结构?0?举个例子//LoadtheconfigfuncLoadConfig(locationstring)(Config,error){//ReadthefileconfigFile,err:=ioutil.ReadFile(location)iferr!=nil{returnConfig{},err}//ConvertittoConfigstructvarconfigConfigjson.Unmarshal(configF

error-handling - 在 Go 中处理连接重置错误

在普通的GoHTTP处理程序上,如果我断开客户端连接同时仍在写入响应,http.ResponseWritter.Write将返回一个错误消息,如writetcp127.0.0.1:60702:连接被对等方重置。现在从syscall包中,我有sysca.ECONNRESET,它有消息connectionresetbypeer,所以它们不是完全一样。我怎样才能匹配它们,所以我知道如果它发生了不要panic?在其他场合我一直在做iferr==syscall.EAGAIN{/*handleerrordifferently*/}例如,它运行良好,但我无法使用syscall.ECONNRESET实

error-handling - Go 中的自定义错误处理

我一直在阅读thisblogpost但我仍然不相信我确切地知道该怎么做才能获得我可以从我的函数返回并在它们之外处理的自定义错误。这是我目前正在做的:funcdoSomething()int{x:=0//Dosomethingwithx....ifsomethingBadHappened{return-1}ifsomethingElseBadHappened{return-2}returnx}这就是我想做的:funcdoSomething()int,?{...ifsomethingBadHappened{return?,err}ifsomethingElseBadHappened{ret

c - 写入()调用失败 : No space left on device: ENOSPC handling

write()调用失败,errno=28(ENOSPC),设备上没有剩余空间。我正在尝试通过以下方式处理此错误。当磁盘已满时,我正在执行lseek()以将文件指针移动到文件的开头。我相信现在write()应该不会失败,因为现在文件将从顶部被覆盖(文件不会扩展)。但是write()调用仍然失败并出现相同的错误。请解释此行为。if(errno==ENOSPC){curPos=lseek(gi4LogFd,0,SEEK_SET);break;} 最佳答案 仅仅因为您写入了文件的开头并不意味着文件系统将写入磁盘上的同一空间或者文件开头的空间

c++ - 类 : handling copy constructor and destructor (C++) 内的 vector

以“big3”(构造函数、复制构造函数、析构函数)的简单类:#includeusingnamespacestd;//actuallygoesintheCfilethatlinkstothisheaderfile...classplanets(){//storesmassandradiidataforplanetsinasolarsystem.public:vectormass;vectorradius;//constructorplanets(intnumObj){for(inti=0;imass(p.mass);//copyvectorsintonewclass.vectorradi

exception-handling - 如何在 node.js 中捕获 http 客户端请求异常

我有一个node.js应用程序,我想用它来检查特定站点是否已启动并返回正确的响应代码。我希望能够捕获由于域名未解析或请求超时而出现的任何错误。问题是这些错误会导致Node崩溃。我是整个异步编程方法的新手,所以我不确定在哪里放置我的try/catch语句。我有一个类似于/check/site1的ajax调用。服务器端调用一个尝试建立连接然后返回状态码的函数。这是一个非常简单的函数,我将每一行都包装在一个try/catch中,它永远不会捕获任何东西。这里是:functioncheckSite(url){varsite=http.createClient(80,url);varrequest

python - 结合来自多个子项目的 Sphinx 文档 : Handling indices, 同步配置等

我们有一个用(优秀的)Sphinx记录的多模块项目。我们的设置与describedonthemailinglist不同。.总的来说这个worksgreat!但我们对此有一些疑问:子模块目录将包括索引链接。充其量这些将链接到错误的索引。(在最坏的情况下,这似乎会触发Sphinx中的错误,但我使用的是开发版本,所以这是合理的)。有没有办法只为最顶层的目录树生成索引链接?是否有让Sphinx配置在多个项目之间保持同步的最佳做法?我可以想象围绕fromcommon_configimport*一起破解一些东西,但对其他方法感到好奇。虽然我们正在处理它,但邮件列表帖子中提出的问题(替代符号链接(s

Python 多处理 : Handling Child Errors in Parent

我目前正在玩多处理和队列。我写了一段代码从mongoDB导出数据,将其映射到关系(平面)结构中,将所有值转换为字符串并将它们插入到mysql中。这些步骤中的每一个都作为一个进程提交并给定导入/导出队列,这对于在父级中处理的mongoDB导出是安全的。正如您将在下面看到的,我使用队列,当子进程从队列中读取“无”时,它们会自行终止。我目前遇到的问题是,如果子进程遇到未处理的异常,则父进程无法识别,其余进程继续运行。我想要发生的是整个shebang退出,充其量是重新提出子错误。我有两个问题:如何检测父级中的子级错误?我如何在检测到错误后终止我的子进程(最佳做法)?我意识到将“None”放在队