我的程序似乎在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.
因此,它可能会产生致命错误:索引超出范围.
所以,我认为这是主要原因.