加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift – Heroku上的蒸汽误差H13

发布时间:2020-12-14 04:27:52 所属栏目:百科 来源:网络整理
导读:我的程序似乎在Heroku上工作正常,但在重新加载页面3-4次后,它崩溃,我得到错误H13:连接关闭而没有响应. 但是,当我在计算机上运行它时,它运行得非常好并且没有任何错误. 这是我的代码: #if os(Linux) import Glibc#else import Darwin#endifimport Vaporlet
我的程序似乎在Heroku上工作正常,但在重新加载页面3-4次后,它崩溃,我得到错误H13:连接关闭而没有响应.
但是,当我在计算机上运行它时,它运行得非常好并且没有任何错误.

这是我的代码:

#if os(Linux)
  import Glibc
#else
  import Darwin
#endif
import Vapor

let arrayA: [String] = ["some strings here"]

let arrayB: [String] = ["more strings there"]

let arrayC: [String] = ["and some more here"]

func buildName (from arrayA: [String],and arrayB: [String],and arrayC: [String]) -> String {
  #if os(Linux)
    let a: Int = Int(random() % (arrayA.count + 1))
    let b: Int = Int(random() % (arrayB.count + 1))
    let c: Int = Int(random() % (arrayC.count + 1))
  #else
    let a: Int = Int(arc4random_uniform(UInt32(arrayA.count)))
    let b: Int = Int(arc4random_uniform(UInt32(arrayB.count)))
    let c: Int = Int(arc4random_uniform(UInt32(arrayC.count)))
  #endif

  return (arrayA[a] + " " + arrayB[b] + " " + arrayC[c])
}

let defaultHead: String = "<head><meta charset='utf-8'></head>"

//create Droplet object
let drop = Droplet()

// REGISTER Routes and handlers
drop.get { req in
  return buildName(from: arrayA,and: arrayB,and: arrayC)
}

// Start the server
drop.run()

我究竟做错了什么?

解决方法

设a:Int = Int(random()%(arrayA.count 1))

此行生成的数字可能等于ArrayA.count.
因此,它可能会产生致命错误:索引超出范围.

所以,我认为这是主要原因.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读