我正在編寫一個應該從在線XML文件讀取數據的程序。計算是通過用Scala編寫的類來完成的,如果任何異常被捕獲,它必須被拋出到處理異常的Java類。出於某種原因,我遇到了異常類型的錯誤。嘗試訪問錯誤的URL或任何類似問題(無互聯網連接)時應該拋出什麼樣的正確例外?謝謝!無法捕獲由SCALA類拋出的JAVA類中的錯誤URL的異常
主類(斯卡拉)
object test
{
def main(args:Array[String])
{
val x:A = new A()
}
}
是解析XML文件,並嘗試訪問URL
import java.net.{URL, URLConnection}
import xml.{XML, Elem}
import java.lang.NullPointerException
import java.io.IOException
class XMLparser {
@throws(classOf[Exception])
private val connectionXMLURL = "http://www.boi.org.il/currency.xml1"
private var urlConnection:URLConnection = null
private var url:URL = null
private var doc:Elem = null
private val currencies = new java.util.LinkedHashMap[String,java.lang.Double]()
try
{
url = new URL(connectionXMLURL)
urlConnection = url.openConnection
doc = XML.load(urlConnection.getInputStream)
}
catch
{
case ex: org.xml.sax.SAXParseException => //is caught!!! and thrown!
{
throw ex
}
case e: IOException =>
{
throw e
//add error log!!
}
case e: NullPointerException =>
{
throw e
//add error log!!
}
case e: Exception =>
{
throw e
}
}
}
應該捕獲該異常(JAVA)
該類的類public class A
{
private XMLparser x;
public A()
{
try
{
x = new XMLparser();
}
catch(org.xml.sax.SAXParseException e) //Cannot catch it!!??
{
}
/* catch (Exception e)
{
e.printStackTrace();
} */
}
}
編輯:這是我試圖捕捉異常時得到的錯誤消息:
scala: warning: [options] bootstrap class path not set in conjunction with -source 1.6
scala: C:\Users\home\Dropbox\Exchange Currency\src\il\hit\currencyExchange\CurrencyExchangeGUI.java:138: error: exception SAXParseException is never thrown in body of corresponding try statement
scala: catch (org.xml.sax.SAXParseException ex)
找到它感謝您的評論,請在我剛剛添加的輸出中獲得戰利品。謝謝! – undroid
@AlexTal,我根據你的評論編輯了答案。謝謝。 – Claudio
感謝您的幫助,像一個魅力工作。 – undroid