2014-11-06 62 views
1

我在Java類中拋出了一個新的異常,其中有一些字符通常用於正則表達式。在Java中,異常消息是否可以包含正則表達式字符?

throw new Exception("(): Fake timeout for message(.*XYZV.* fakeApp .*)."); 

這好嗎?還是我需要逃避它們?

+1

當你嘗試時會發生什麼? – 2014-11-06 16:09:55

+4

這很好。異常消息不是祕密地通過正則表達式解析器。 – khelwood 2014-11-06 16:11:16

回答

5

只有在字符串被視爲正則表達式的地方,您才需要轉義特殊的正則表達式字符。例如,replaceAll將其第一個參數視爲正則表達式,因此您需要轉義想要像純文本字符一樣解釋的元字符。

一般來說,傳遞給類的構造函數的消息中沒有這樣的解釋,所以不需要轉義這些字符。

但是,您可能有一個自定義日誌分析工具,它可能會將部分消息解釋爲正則表達式。在這種情況下,答案取決於您對自定義工具所做的工作,因爲在將消息解釋爲正則表達式(或其他任何事情)時,Java庫完全沒有了循環。

相關問題