abort the program rather than throw exceptions

--- a/libapparmor_re/hfa.h
+++ b/libapparmor_re/hfa.h
@@ -70,7 +70,7 @@ public:
 				allow = (allow & ~AA_USER_EXEC_TYPE) |
 					(rhs.allow & AA_USER_EXEC_TYPE);
 			} else
-				throw 1;
+				abort();
 		} else
 			allow |= rhs.allow & AA_USER_EXEC_TYPE;
 
@@ -84,7 +84,7 @@ public:
 				allow = (allow & ~AA_OTHER_EXEC_TYPE) |
 					(rhs.allow & AA_OTHER_EXEC_TYPE);
 			} else
-				throw 1;
+				abort();
 		} else
 			allow |= rhs.allow & AA_OTHER_EXEC_TYPE;
 
@@ -208,7 +208,7 @@ public:
 		error = accept_perms(n.anodes, perms);
 		if (error) {
 			//cerr << "Failing on accept perms " << error << "\n";
-			throw error;
+			abort();
 		}
 	};
 
--- a/libapparmor_re/aare_rules.cc
+++ b/libapparmor_re/aare_rules.cc
@@ -181,7 +181,6 @@ void *aare_rules::create_dfa(size_t *size, int *min_match_len, dfaflags_t flags)
 	}
 
 	stringstream stream;
-	try {
 		DFA dfa(root, flags);
 		if (flags & DFA_DUMP_UNIQ_PERMS)
 			dfa.dump_uniq_perms("dfa");
@@ -241,11 +240,6 @@ void *aare_rules::create_dfa(size_t *size, int *min_match_len, dfaflags_t flags)
 		if (flags & DFA_DUMP_TRANS_TABLE)
 			chfa.dump(cerr);
 		chfa.flex_table(stream, "");
-	}
-	catch(int error) {
-		*size = 0;
-		return NULL;
-	}
 
 	stringbuf *buf = stream.rdbuf();
 
