2013-01-22 59 views
2

我試圖找到clearcase視圖的最近訪問日期,perl腳本如下所示。如何處理perl中的異常?

@Property = `cleartool lsview -prop $viewtag ` ; 

foreach $property (@Property) 
    { 
    $last_accessed = $property if ($property =~ /^Last accessed /); 
      # | cut -b 15-24 | awk -F '-' '{ print $3"/"$2"/"$1 }' 
    } 

如果cleartool命令失敗,問題是我面臨的是perl腳本退出。即使cleartool返回錯誤,我仍想繼續使用perl。

BRs Mani。

+0

而在失敗的情況下@ @ Property'是什麼? – Zaid

回答

8

簡單而原始的辦法是把潛在的故障代碼的eval塊內:

eval { @Property = `cleartool lsview -prop $viewtag ` }; 

這樣,如果cleartool失敗,您的Perl腳本,甚至會繼續。

正確的方法是使用合適的模塊,如Try::Tiny。該錯誤將在變量$ _中的catch塊內部可用。

try { 
    @Property = `cleartool lsview -prop $viewtag `; 
} 
catch { 
    warn "cleartool command failed with $_"; 
}; 
+1

對於No/Low-CPAN站點,「原始」方式是保證工作的方式。 – Axeman