这是我的计划。
try {
int a = 1/0;
}
catch(Exception e) {
system.out.println("Exception block"+e);
}
catch(ArithmeticException e) {
system.out.println("Inside ArithmeticException block");
}
finally {
system.out.println("Inside Finally block");
}
在上面的程序中,我有两个catch块和一个finally块。
将执行哪个catch块?因为我首先定义父catch块。这会导致错误吗?任何人都可以帮助我吗?
我假设" ArithmeticException和Finally块将被执行"
答案 0 :(得分:1)
捕获Exception
类不会出现任何错误。但是,不建议这样做。
在这种情况下,Exception
catch
块将首先执行,然后finally
块将执行。
如果您希望执行ArithmeticException
阻止,请在Exception
catch
阻止之前放置此阻止。
更新代码 -
try{
int a = 1/0;
}
catch(ArithmeticException e){
System.out.println("Inside ArithmeticException block");
}
catch(Exception e) {
System.out.println("Exception block"+e);
}
finally{
System.out.println("Inside Finally block");
}
答案 1 :(得分:0)
捕获异常类不会给出任何错误。
在这种情况下,Exception catch块将首先执行,然后finally块将执行。
如果您希望执行ArithmeticException块,请将此块放在Exception catch块之前。
这是更新的代码
<Window.Resources>
<XmlDataProvider x:Key="dataGridData" XPath="Cars">
<x:XData>
<Cars xmlns="">
<Maruthi>
<Maruthi_Alto>
<Description>MINI</Description>
</Maruthi_Alto>
<Maruthi_Ciaz>
<Description>Sedan</Description>
</Maruthi_Ciaz>
</Maruthi>
</Cars>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<DataGrid DataContext="{StaticResource dataGridData}"
ItemsSource="{Binding XPath=*}"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Car Name" Binding="{Binding Path=Name}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>