Java 如何在Scala/Play中输出异常错误
我是Scala的新手,我继承了一个项目,在这个项目中,我试图通过gzip压缩一个文件并将其上传到s3 我收到一个错误,告诉我Java 如何在Scala/Play中输出异常错误,java,scala,gzip,Java,Scala,Gzip,我是Scala的新手,我继承了一个项目,在这个项目中,我试图通过gzip压缩一个文件并将其上传到s3 我收到一个错误,告诉我java.lang.Exception:压缩文件时出现问题 这是抛出新异常(“问题压缩文件”+tempFilePath) 不幸的是,我不清楚什么是例外,为什么gzip会失败。这是在windows计算机上,gzip可从命令行获得,并已包含在global.scala文件中,包含有import play.filters.gzip.GzipFilter 上传和压缩的整个代码是 de
java.lang.Exception:压缩文件时出现问题
这是抛出新异常(“问题压缩文件”+tempFilePath)
不幸的是,我不清楚什么是例外,为什么gzip会失败。这是在windows计算机上,gzip可从命令行获得,并已包含在global.scala文件中,包含有import play.filters.gzip.GzipFilter
上传和压缩的整个代码是
def compressAndUpload(tempFilePath: String, dstFileName: String, mimeType: String): Future[Boolean] = {
"gzip -9 " + tempFilePath ! match {
case 0 =>
val gzipTempFilePath = tempFilePath + ".gz"
val bucket = S3(System.getenv("S3_BUCKET_NAME"))
// Get incoming file as a byte array
val byteArray = scalax.io.Resource.fromFile(gzipTempFilePath).byteArray
// Write to bucket
val result = bucket + BucketFile(dstFileName, mimeType, byteArray, Some(PUBLIC_READ), Some(Map("Content-Encoding" -> "gzip")))
result.map { unit =>
Logger.info("S3 file saved: " + dstFileName)
// Delete the file
new File(gzipTempFilePath).delete()
true
}.recover {
case S3Exception(status, code, message, originalXml) => throw new Exception("Error: " + message)
}
case _ =>
throw new Exception("Problem zipping file" + tempFilePath)
}
}
结果发现我要查找的字符串在异常中,只是没有被输出
case _ =>
var e = new Exception("Problem zipping file" + tempFilePath)
println(e.getStackTraceString)
throw e
}
试试“scala>def foo(f:()=>Unit):Unit=try{f()}catch{case e:Exception=>println(“H”+e.getStackTrace)}foo:(f:()=>Unit)Unit”你的标题似乎有误导性。你问“异常中有什么?”据我所知,它是你简单抛出的异常,所以它可以是什么。没有发生异常,执行gzip只返回0以外的内容。您可以检查是什么,并尝试找出问题所在,或者使用与
不同的东西代码>,(例如,打印此命令执行时生成的行)。