Java 尝试使用scala Try函数获取错误时出错
我试图用try捕捉一些错误,但我得到了一些错误我不知道为什么,代码如下:Java 尝试使用scala Try函数获取错误时出错,java,scala,scala-collections,Java,Scala,Scala Collections,我试图用try捕捉一些错误,但我得到了一些错误我不知道为什么,代码如下: class Application extends Controller { val ds: DataSource = CsvDataSource val purchaseDS = PurchaseInfo.fromDataSource(ds)_ def index = Action { implicit request => Ok(views.html.index()) } de
class Application extends Controller {
val ds: DataSource = CsvDataSource
val purchaseDS = PurchaseInfo.fromDataSource(ds)_
def index = Action { implicit request =>
Ok(views.html.index())
}
def redirectToIndex = Action {
Redirect(routes.Application.index)
}
case class csvUploadData(clientUrl: String)
val csvUploadForm = Form(
mapping(
"clientUrl" -> nonEmptyText)(csvUploadData.apply)(csvUploadData.unapply))
def uploadCSV = Action.async(parse.multipartFormData) { implicit request =>
csvUploadForm.bindFromRequest.fold(
formWithErrors => {
Future {
Redirect(routes.Application.index).flashing(
"error" -> formWithErrors.error("clientUrl").get.message)
}
},
userData => {
request.body.file("csvFile").fold(Future {
Redirect(routes.Application.index).flashing(
"error" -> "Missing CSV file").withSession(request.session)
}) { formFile =>
import java.io.File
val filename = formFile.filename
Future {
val file = formFile.ref.file
val purchaseInfos = purchaseDS(file)
val t = Try {
val driver: WebDriver = new FirefoxDriver
val actions: ActionsHMRC = new ActionsHMRC(driver, userData.clientUrl)
val results = actions.insertData(purchaseInfos)
results.filter(_._2.isFailure)
}
t match {
case Success(failures) =>
val failedMsg = if (failures.nonEmpty) failures.mkString("The following rows failed: [",",","]") else ""
Redirect(routes.Application.index).flashing(
"success" -> s"The file '$filename' automation successfuly.\n$failedMsg")
case Failure(e) =>
println(e)
Redirect(routes.Application.index).flashing(
"error" -> s"The file '$filename' automation failed.")
}
}
}
})
}
}
行动SHMRC方法:
def insertData(purchaseInfos: Seq[PurchaseInfo]) = {
login()
purchaseInfos.map { case purchaseInfo =>
(purchaseInfo, Try(doActions(purchaseInfo)))
}
println("done insertData function")
}
这些线是红色的(所以它们有点问题),我不明白为什么
过滤器(u.u 2
非空
mkString
如果您知道可能发生了什么,它将有助于分配,thanksssinsertData,作为书面返回单位。单位没有过滤方法
我建议向方法(以及任何公共方法)添加一个返回类型,这将有助于编译器提供更接近错误实际位置的错误消息。insertData,作为书面返回单位。单位没有筛选方法
我建议向方法(以及任何公共方法)添加一个返回类型,这将有助于编译器提供更接近错误实际位置的错误消息。insertData,作为书面返回单位。单位没有筛选方法
我建议向方法(以及任何公共方法)添加一个返回类型,这将有助于编译器提供更接近错误实际位置的错误消息。insertData,作为书面返回单位。单位没有筛选方法
我建议向该方法(以及任何公共方法)添加一个返回类型,这将有助于编译器向您提供更接近错误实际位置的错误消息。您能提供一个工作代码示例吗?您的代码中有一堆额外的大括号。如果我可以复制/粘贴您的代码,并在不必先清理的情况下获得您的确切错误,您就更有可能获得帮助。我找不到任何错误定义r ActionsHMRC,你能发布ActionsHMRC.insertData()函数的类型签名吗?或者你得到的实际错误(你的“红色”注释让我觉得你在使用IDE,通常悬停在红色上会给你一条错误消息)@AngeloGenovese当我悬停它时,我会说“无法解析符号过滤器”mkString和NoneEmpty也是一样。将insertData方法添加到codeCan您可以提供一个工作代码示例吗?您的代码中有一堆额外的大括号。如果我可以复制/粘贴您的代码,并在不必先清理的情况下获得准确的错误,您就更有可能获得帮助。我找不到任何操作定义HMRC,你能发布ActionsHMRC.insertData()函数的类型签名吗?或者可能是你得到的实际错误(你的“红色”注释让我觉得你在使用IDE,通常悬停在红色上会给你一条错误消息)@AngeloGenovese当我悬停它时说“无法解析符号过滤器”mkString和NoneEmpty也是一样。将insertData方法添加到codeCan您可以提供一个工作代码示例吗?您的代码中有一堆额外的大括号。如果我可以复制/粘贴您的代码,并在不必先清理的情况下获得准确的错误,您就更有可能获得帮助。我找不到任何操作定义HMRC,你能发布ActionsHMRC.insertData()函数的类型签名吗?或者可能是你得到的实际错误(你的“红色”注释让我觉得你在使用IDE,通常悬停在红色上会给你一条错误消息)@AngeloGenovese当我悬停它时说“无法解析符号过滤器”mkString和NoneEmpty也是一样。将insertData方法添加到codeCan您可以提供一个工作代码示例吗?您的代码中有一堆额外的大括号。如果我可以复制/粘贴您的代码,并在不必先清理的情况下获得准确的错误,您就更有可能获得帮助。我找不到任何操作定义HMRC,你能发布ActionsHMRC.insertData()函数的类型签名吗?或者可能是你得到的实际错误(你的“红色”注释让我觉得你在使用IDE,通常悬停在红色上会给你一条错误消息)@AngeloGenovese当我悬停它时说“无法解析符号过滤器”对于mkString和nonEmpty也是一样。在codeCan中添加了insertData方法。我可以收到你的电子邮件吗?我想问一些问题:)我可以收到你的电子邮件吗?我想问一件事:)我能收到你的电子邮件吗?我想问一件事:)我能收到你的电子邮件吗?我想问一件事:))