๐ŸŒ
Ucdavis
nob.cs.ucdavis.edu โ€บ bishop โ€บ secprog โ€บ robust.html
Robust Programming - nob.cs.ucdavis.edu!
Robust programming, also called bomb-proof programming, is a style of programming that prevents abnormal termination or unexpected actions. Basically, it requires code to handle bad (invalid or absurd) inputs in a reasonable way.
๐ŸŒ
Quora
quora.com โ€บ What-does-it-mean-for-a-code-to-be-robust
What does it mean for a code to be robust? - Quora
Answer (1 of 3): Robustness (in programming) means that the (SW) system can deal well with errors and/or unexpected situations. When you code, you typically follow the โ€œhappyโ€ path.
property of a computer system to cope with faults in input or execution
Robustness (computer science) - Wikipedia
In computer science, robustness is the ability of a computer system to cope with errors during execution and cope with erroneous input. Robustness can encompass many areas of computer science, such as โ€ฆ Wikipedia
๐ŸŒ
Wikipedia
en.wikipedia.org โ€บ wiki โ€บ Robustness_(computer_science)
Robustness (computer science) - Wikipedia
3 weeks ago - Rather, they tend to focus on scalability and efficiency. One of the main reasons why there is no focus on robustness today is because it is hard to do in a general way. Robust programming is a style of programming that focuses on handling unexpected termination and unexpected actions.
Top answer
1 of 10
39

what is the point of checking a third state when a third state is logically impossible?

What about a Boolean? that allows for a NULL state that is neither true nor false. Now what should the software do? Some software has to be highly crash-resistant like pacemakers. Ever seen someone add a column to a database that was a Boolean and initialize the current data to NULL initially? I know I've seen it.

Here are a few links that discuss what it means to be robust in terms of software:

  • Robust Programming
  • Robust Definition
  • Robustness, the forgotten code quality.
  • How to write robust code

If you think there is one universally agreed upon definition of "robust" here, good luck. There can be some synonyms like bomb-proof or idiot-proof. The Duct Tape Programmer would be an example of someone that usually writes robust code at least in my understanding of the terms.

2 of 10
12

For the sake of my discussion a Bool can have 2 states, True or False. Anything else is non-conformance to the programming langugae specification. If your tool chain is non-conformant to its specification, you are hosed no matter what you do. If a developer created a type of Bool that had more than 2 states, it's the last thing he would ever do on my codebase.

Option A.

if (var == true) {
    ...
} else if (var == false) {
    ...
} else {
    ...
}

Option B

if (var == true) {
    ...
} else {
    ...
}

I assert Option B is more robust.....

Any twit can tell you to handle unexpected errors. They are usually trivally easy to detect once you think of them. The example your professior has given is not something that could happen, so it's a very poor example.

A is impossible to test without convoluted test harnesses. If you can't create it, how are you going to test it? If you have not tested the code, how do you know it works? If you don't know it works, then you are not writing robust software. I think they still call that a Catch22 (Great movie, watch it sometime).

Option B is trivial to test.

Next problem, ask you professor this question "What do you want me to do it about it if a Boolean is neither True nor False?" That should lead into an a very interesting discussion.....

Most cases, a core dump is approriate, at worst it annoys the user or costs a lot of money. What if, say, the module is the Space shuttle realtime reentry calculation system? Any answer, no matter how inaccurate, cannot be worse than aborting, which will kill the users. So what to do, if you know the answer might be wrong, go for the 50/50, or abort and go fo the 100% failure. If I was a crew member, I'd take the 50/50.

Option A kills me Option B gives me an even chance of survival.

But wait - it's a simulation of the space shuttle reentry - then what? Abort so you know about it. Sound like a good idea? - NOT - because you need to test with the code you plan to ship.

Option A is better for simluation, but can't be deployed. It's useless Option B is the deployed code so the simulation performs the same as the live systems.

Let's say this was a valid concern. The better solution would be to isolate the error handling from the application logic.

if (var != true || var != false) {
    errorReport("Hell just froze over, var must be true or false")
}
......
if (var == true){
 .... 
} else {
 .... 
}

Futher reading - Therac-25 Xray machine, Ariane 5 Rocket failure and others (Link has many broken links but enough info that Google will help)

๐ŸŒ
The Knowledge Academy
theknowledgeacademy.com โ€บ blog โ€บ robust-meaning-in-java
Let's discuss about What is Robust Meaning in Java - An Overview
November 25, 2025 - In the context of Java, robustness refers to the language's ability to handle unexpected situations and errors effectively. A robust programming language like Java can withstand erroneous conditions during program execution without crashing ...
๐ŸŒ
Study.com
study.com โ€บ courses โ€บ computer science courses โ€บ mttc computer science (050): practice & study guide
Characteristics of Robust Programs | Study.com
Create your account ยท To recap, a program is a collection of computer commands that perform some focused activity. Robust is used to describe something that is active, sturdy, or solid.
๐ŸŒ
LINFO
linfo.org โ€บ robust.html
Definition of robust
June 20, 2005 - The word robust, when used with regard to computer software, refers to an operating system or other program that performs well not only under ordinary conditions but also under unusual conditions that stress its designers' assumptions ยท Software is typically buggy (i.e., contains errors) and ...
Find elsewhere
๐ŸŒ
Wikiversity
en.wikiversity.org โ€บ wiki โ€บ Software_Design โ€บ Code_robustness
Software Design/Code robustness - Wikiversity
April 5, 2022 - Introducing a bug in these definitions means not just an insertion of a bug, but an insertion of a bug that won't be caught during all code quality checks and will go into production. For example, it may be relatively easy to insert a bug into code written in some dynamically typed language, but if the code has an extensive test suite, most of such bugs would be caught during testing. In this case, the codebase should be considered robust overall.
๐ŸŒ
TutorialsPoint
tutorialspoint.com โ€บ why-is-java-a-robust-programming-language
Why is Java a Robust Programming Language?
August 6, 2024 - Therefore, we are giving you some information about robust programming languages. Robust means strong and healthy where robust programming language refers to a strong programming language. Strong programming handles unforeseen terminations and actions. It requires code to precisely communicate ...
๐ŸŒ
Coding Bytes
codingbytes.com โ€บ home โ€บ blog โ€บ why java is a robust programming language ?
Why Java is a Robust Programming Language ? - Coding Bytes
January 12, 2024 - There are type-checking mechanisms and exception-handling in Java. All these features make Java robust. The JVM. The managed runtime provided by the JVM allows Java programs to be portable. Build once run almost everywhere there is a JVM, is excellent. It also provides a safe environment. The JVM offers dynamic linking. Meaning ...
๐ŸŒ
PrepBytes
prepbytes.com โ€บ home โ€บ java โ€บ robust meaning in java
Robust Meaning in Java
January 24, 2024 - Because of several factors that contribute to its dependability, security, and error-handling capabilities, Java is frequently regarded as a robust programming language.
๐ŸŒ
ResearchGate
researchgate.net โ€บ publication โ€บ 268422674_Robust_Programming_by_Example
(PDF) Robust Programming by Example
January 1, 2013 - PDF | Robust programming lies at the heart of the type of coding called "secure programming". Yet it is rarely taught in academia. More commonly, the... | Find, read and cite all the research you need on ResearchGate
๐ŸŒ
Quora
quora.com โ€บ What-is-a-robust-language-and-why-is-C-called-a-robust-language
What is a robust language and why is C called a robust language? - Quora
Answer (1 of 3): Robust basically meaning strength in Latin . It's efficiently deal with errors during execution and errorness input of program.When arise a exception than deal with this.
๐ŸŒ
eScholarship
escholarship.org โ€บ content โ€บ qt6sq2s7d7 โ€บ qt6sq2s7d7_noSplash_f0319f041b253830fd875a0b7efc90d1.pdf pdf
Robust Programming by Example Matt Bishop1 and Chip Elliott2
over๏ฌ‚ow in a reasonable way. In this case, a robust program would gracefully ยท terminate, telling the user about the invalid input that caused the problem. In what follows, we refer to โ€œcodeโ€ when we mean a program or a library.
๐ŸŒ
Learneroo
learneroo.com โ€บ modules โ€บ 82 โ€บ nodes โ€บ 428
Introduction to Correctness and Robustness - Learneroo
A program is correct if it accomplishes the task that it was designed to perform. It is robust if it can handle illegal inputs and other unexpected situations in a reasonable way. For example, consider a program that is designed to read some numbers from the user and then print the same numbers ...
๐ŸŒ
Medium
rameshfadatare.medium.com โ€บ why-is-java-robust-java-interview-question-and-answer-5da50e96f787
๐Ÿ’ช Why is Java Robust? (Java Interview Question and Answer) | by Ramesh Fadatare | Medium
March 21, 2025 - In simple terms, robust means strong, reliable, and less prone to crash. A robust language helps developers build applications that handle unexpected conditions smoothly, without system failure.
๐ŸŒ
LinkedIn
linkedin.com โ€บ pulse โ€บ why-java-robust-programming-language-suresh-kumar-reddy-v
Why is Java a Robust Programming Language?
July 26, 2020 - Dictionary meaning of Robust is โ€œstrong and healthyโ€. Below are the features which make Java Programming language Robust Builtin Memory management: Memory allocation/deallocation is performed internally in Java and pointers are not exposed ...