1
我在Java類中拋出了一個新的異常,其中有一些字符通常用於正則表達式。在Java中,異常消息是否可以包含正則表達式字符?
throw new Exception("(): Fake timeout for message(.*XYZV.* fakeApp .*).");
這好嗎?還是我需要逃避它們?
我在Java類中拋出了一個新的異常,其中有一些字符通常用於正則表達式。在Java中,異常消息是否可以包含正則表達式字符?
throw new Exception("(): Fake timeout for message(.*XYZV.* fakeApp .*).");
這好嗎?還是我需要逃避它們?
只有在字符串被視爲正則表達式的地方,您才需要轉義特殊的正則表達式字符。例如,replaceAll
將其第一個參數視爲正則表達式,因此您需要轉義想要像純文本字符一樣解釋的元字符。
一般來說,傳遞給類的構造函數的消息中沒有這樣的解釋,所以不需要轉義這些字符。
但是,您可能有一個自定義日誌分析工具,它可能會將部分消息解釋爲正則表達式。在這種情況下,答案取決於您對自定義工具所做的工作,因爲在將消息解釋爲正則表達式(或其他任何事情)時,Java庫完全沒有了循環。
當你嘗試時會發生什麼? – 2014-11-06 16:09:55
這很好。異常消息不是祕密地通過正則表達式解析器。 – khelwood 2014-11-06 16:11:16