Morning Joe: When is It Time for Technical Writing in the Work Place?

I work at a startup. If you go unnoticed someone notices. The pay is lower but the people are nice. You learn who people are and teamwork receives the benefit. However, my starup is growing and communications are realing from the same revolving door policy. The solution is clearly technical writing and anyone would say creating a report for a massive project is always a good thing. However, when do simple installs need proposals? This is obviously a situational issue. Here are the factors I see going into this decision.

      How much time does the supervisor have? Creating paper creates flexibility but also says importance.
      How knowledgeable are your superiors? Will the request recipient be able to explain the problem and solution?
      How technical is the problem compared to the supervisors capabilities?
      How costly is the request? A formal report may be necessary.
      Do you have something other than supervisor level knowledge to offer without looking cocky?

You will need to assess the capabilities of the team members as well as higher-ups and technical writing allows you to sell the option.


Exceptions: JVM v. Programatic

This is mainly for those who have a desire to follow the certification track or want to know what the author thinks. In practice, no one follows it. I am writing this as I test a pdf table stripper using OCR for automated and open source pdf extraction but I am a little worn out today and this is simple. For the record, I nearly got in a fight with an experienced developer who did not remember this since it is something to know but also know no one will use it.

Oracle makes a fairly clearer distinction between the two.

Exception Hierarchy

The exception hierarchy is clear. Every exception is a throwable. Exception is a throwable. Underneath the Exception class, checked exceptions and and Runtime or unchecked exceptions exist.

A Word From Oracle
Oracle directly states that unchecked exceptions should never be thrown or caught since it violates the principles of the language. Specifically, throwing an unchecked exception or an error “it sidesteps the intent of the catch or specify requirement and can cause problems for others using your classes” (Oracle).

Runtime exceptions cannot be expected to be caught by the compiler since they are based on program decisions rather than problems with utilizing java itself.

Runtime exceptions represent problems that are the result of a programming problem, and as such, the API client code cannot reasonably be expected to recover from them or to handle them in any way. Such problems include arithmetic exceptions, such as dividing by zero; pointer exceptions, such as trying to access an object through a null reference; and indexing exceptions, such as attempting to access an array element through an index that is too large or too small.

Distinguishing JVM from Programmer Exceptions
The difference between the two is the difference between what must be caught and thrown explicitly versus what must be thrown implicitly while keeping in mind the rule from Oracle.

Checked exceptions are programmer thrown exceptions, they exist just under the Exception class, extending Exception which implements the Throwable interface. Unchecked Exceptions exist under RuntimeException.

Common JVM thrown Exceptions include:

  • NullPointerException
  • IllegalArgumentException
  • NumberFormatException
  • ArithmeticException
  • SecurityException
  • IndexOutOfBoundsException<–ArrayIndexOutOfBoundsException

Common JVM thrown Errors include:

  • StackOverFlowError
  • OutOfMemoryError
  • ClassDefNotFoundError
  • NoSuchMethodError

Common Programmer thrown exceptions:

  • IOException<–SQLException,FileNotFoundException,InterruptedIOException
  • ReflectiveOperationException<–ClassNotFoundException,NoSuchMethodException
  • CloneNotSupportedException

As an aside the most specific class must be caught first in a try,catch block. Also, in reality, most programmers consider this an esoteric question between what is actually thrown and unchecked exceptions left to the JVM. Anything can be thrown without breaking the code. Oracle just does not like it and you will lose 5% of your SE7 I test grade.