One feature of Scala is it reuse Java's Exception class hierarchies, but much easier to use. For one thing, it treats Exception as "unchecked" just like RuntimeException, which I think one of the reason it causes Java to be unnecessary verbose. For example when opening a file stream, one way Java can do it is:

public void doFile(File file) throws FileNotFoundException, IOException {  
  FileInputStream fins = null;
try{
fins = new FileInputStream(file);
//process it.
}finally{
if(fins != null){ fins.close(); }
}
}

But in Scala equivalent can be done as follow:
def doFile(file: File): Unit = {  
  val fins = new FileInputStream(file)
try{
//process it.
}finally{
fins.close
}
}

In Scala, you don't need to predefine the "fins" to null then try it, and then check to close in finally block, because if FileInputStream failed, an FileNotFoundException instance will be thrown out of the method, before reaching to the try block. In addition, the Scala user of the doFile method do NOT need to invoke it inside a try/catch block, while Java requires it. This is possible because Exception, or any subclasses are "uncheck" as default in Scala. This mean that the exception will keep throw to next stack frame until it finds a "catcher". If none are found, it will exit main at the end.

Views: 36

Happy 10th year, JCertif!

Notes

Welcome to Codetown!

Codetown is a social network. It's got blogs, forums, groups, personal pages and more! You might think of Codetown as a funky camper van with lots of compartments for your stuff and a great multimedia system, too! Best of all, Codetown has room for all of your friends.

When you create a profile for yourself you get a personal page automatically. That's where you can be creative and do your own thing. People who want to get to know you will click on your name or picture and…
Continue

Created by Michael Levin Dec 18, 2008 at 6:56pm. Last updated by Michael Levin May 4, 2018.

Looking for Jobs or Staff?

Check out the Codetown Jobs group.

 

Enjoy the site? Support Codetown with your donation.



InfoQ Reading List

How to Shape the Engineering Culture in Software Companies

You can find your way through an organization by figuring out what artifacts people leave behind, David Grizzanti mentioned at InfoQ Dev Summit Boston. He compared culture to anthropology, suggested studying behaviors, power dynamics, and decisions first, and then patiently model and reward new norms, build allies, and use influence and leading by example, to shift engineering culture over time.

By Ben Linders

QCon London 2026: Refreshing Stale Code Intelligence

At QCon London 2026, Jeff Smith discussed the growing mismatch between AI coding models and real-world software development. While AI tools are enabling developers to generate code faster than ever, Smith argued that the models themselves are increasingly “stale” because they lack the repository-specific knowledge required to produce production-ready contributions.

By Daniel Dominguez

AI Model Discovers 22 Firefox Vulnerabilities in Two Weeks

Claude Opus 4.6 discovered 22 Firefox vulnerabilities in two weeks, including 14 high-severity bugs, as nearly 20% of all critical Firefox vulnerabilities were fixed in 2025. The AI also wrote working exploits for two bugs, demonstrating emerging capabilities that give defenders a temporary advantage but signal an accelerating arms race in cybersecurity.

By Steef-Jan Wiggers

Microsoft Adds DRA-Backed NVIDIA vGPU Support to AKS

The Azure Kubernetes Service team shared a detailed guide on how to use Dynamic Resource Allocation (DRA) with NVIDIA vGPU technology on AKS. his update improves control and efficiency for shared GPU use in AI and media tasks.

By Claudio Masolo

.NET 11 Preview 2 Brings Performance Gains, Improved Mapping, and Native OpenTelemetry Support

Microsoft has released the second preview of .NET 11, featuring native OpenTelemetry tracing for ASP.NET Core, major Map control improvements and faster bindings in .NET MAUI, Blazor TempData support, a new Web Worker project template, and performance improvements across the runtime, SDK, and libraries.

By Almir Vuk

© 2026   Created by Michael Levin.   Powered by

Badges  |  Report an Issue  |  Terms of Service