我正在尝试加载要使用PHPExcel阅读器对象读取的Excel文件:
$inputFileName = $_FILES['excelimportfile']['tmp_name'];
//Read your Excel workbook
try {
$inputFileType = PHPExcel_IOFactory::identify($inputFileName);
$objReader = PHPExcel_IOFactory::createReader($inputFileType);
$objPHPExcel = $objReader->load($inputFileName);
}catch(Exception $e) {
$this->session->set_flashdata(
'error','Error loading file "'.
pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()
);
redirect('admin/zipcode');
}
但是谁会抛出这个例外?这个 $ objPHPExcel = $ objReader-> load($ inputFileName); 行应该用于生成我认为的异常。例如:
$objPHPExcel = $objReader->load($inputFileName);
if(!$objPHPExcel) throw new Exception($objPHPExcel->load_error(),1);
但我在任何地方都找不到这样的东西。现在该做什么???
答案 0 :(得分:1)
PHPExcel库中的代码本身抛出异常而不是返回false作为错误状态,因为您的上一条评论似乎表明它应该;这表明你并不真正了解例外的运作方式或目的是什么。
PHPExcel从库中的任何位置抛出的异常都可以被代码捕获和处理,无论它们在库中的哪个位置被抛出
load()方法中有一大堆逻辑可以抛出异常(格式错误的文件就是一个例子),而且identify()中的逻辑也可以抛出异常(如果指定的文件不存在) ,或者无法读取,那么identify()方法将抛出异常)....
但很难准确理解你的要求。如果你看一下读者的代码,那些可以引发异常的类中的方法都记录在phpdoc块中,你可以在类代码中看到实际抛出异常的地方。