2016-04-21 57 views
0
**「Path inputPath = new Path(job.get(KnnDriver.QUERY_DIR_PROPERTY));」**//it gives out error。 
    if (inputPath == null) 
     throw new UnsupportedOperationException("ERROR: query directory not set"); 
    job.setInputFormat(NonSplitableTextInputFormat.class); 
    NonSplitableTextInputFormat.addInputPath(job, inputPath); 
    Path outputPath = new Path(job.get(KnnDriver.RESULT_DIR_PROPERTY)); 
    FileSystem.get(job).delete(outputPath, true); 
    // Change to FileOutputFormat to see output 

    job.setOutputFormat(TextOutputFormat.class); 
    TextOutputFormat.setOutputPath(job, outputPath); 

    KnnDriver.run(job); 
} 

我已經在功能標籤的文本錯誤創建Path 以下將是靜態常量我在knnDriver設置。java.lang.IllegalArgumentException異常:無法從一個空字符串

public static final String QUERY_DIR_PROPERTY = "knn.query.dir"; 
public static final String RESULT_DIR_PROPERTY = "knn.result.dir"; 
public static final String THRESHOLD_PROPERTY = "knn.sim.threshold"; 
+0

請給出一些有效的建議。謝謝 –

+0

如何使用if(inputPath!= null){} else {}'來捕獲錯誤。 – Eames

+0

我已經嘗試過它所說的。它不適用於上圖中的相同錯誤。 –

回答

0

而不是想看看是否變量爲空,然後再做任何你需要的,只是做任何你需要,只要它不。這消除了檢查變量是否「完全」等於某件事情的需要。它會造成併發症。

要避免這種情況,請使用if語句來完成上述操作。

if(inputPath != null){ 
//Whatever you want 
}else{ 
//However you want to catch it 
} 

基本上,你不是在尋找黑天鵝,而只是檢查沒有任何。這種方法的問題要少得多,應該用它來代替你的方式。

相關問題